--- quota-3.13.orig/doc/quotadoc.sgml +++ quota-3.13/doc/quotadoc.sgml @@ -67,10 +67,9 @@ directory of a filesystem. When any of For each filesystem with quotas you have to have files with quota data. The name of these quota files depends on \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" -#: bylabel.c:234 +#: bylabel.c:251 #, c-format msgid "Found an invalid UUID: %s\n" msgstr "Znaleziono nieprawid³owy UUID: %s\n" -#: bylabel.c:254 +#: bylabel.c:271 #, c-format msgid "Error checking device name: %s\n" msgstr "B³±d podczas sprawdzania nazwy urz±dzenia: %s\n" @@ -67,7 +67,7 @@ msgid "Bad number of arguments." msgstr "B³êdna liczba argumentów." -#: convertquota.c:121 quotacheck_v2.c:217 quotaio_v2.c:276 +#: convertquota.c:121 quotacheck_v2.c:219 quotaio_v2.c:276 #, c-format msgid "Can't read block %u: %s\n" msgstr "Nie mo¿na odczytaæ bloku %u: %s\n" @@ -118,8 +118,12 @@ msgstr "Mia³a byæ wykonana nieznana akcja.\n" #: edquota.c:69 -msgid "Usage:\tedquota [-r] [-u] [-F formatname] [-p username] [-f filesystem] username ...\n" -msgstr "Sk³adnia:\tedquota [-r] [-u] [-F format] [-p u¿ytkownik] [-f system-plików] u¿ytkownik ...\n" +msgid "" +"Usage:\n" +"\tedquota [-r] [-u] [-F formatname] [-p username] [-f filesystem] username ...\n" +msgstr "" +"Sk³adnia:\n" +"\tedquota [-r] [-u] [-F format] [-p u¿ytkownik] [-f system-plików] u¿ytkownik ...\n" #: edquota.c:70 msgid "\tedquota [-r] -g [-F formatname] [-p groupname] [-f filesystem] groupname ...\n" @@ -134,8 +138,12 @@ msgstr "\tedquota [-r] [-u|g] [-F format] [-f system-plików] -T u¿ytkownik|grupa ...\n" #: edquota.c:75 -msgid "Usage:\tedquota [-u] [-F formatname] [-p username] [-f filesystem] username ...\n" -msgstr "Sk³adnia:\tedquota [-u] [-F format] [-p u¿ytkownik] [-f system-plików] u¿ytkownik ...\n" +msgid "" +"Usage:\n" +"\tedquota [-u] [-F formatname] [-p username] [-f filesystem] username ...\n" +msgstr "" +"Sk³adnia:\n" +"\tedquota [-u] [-F format] [-p u¿ytkownik] [-f system-plików] u¿ytkownik ...\n" #: edquota.c:76 msgid "\tedquota -g [-F formatname] [-p groupname] [-f filesystem] groupname ...\n" @@ -303,7 +311,7 @@ msgid "Over block quota on" msgstr "Miêkki limit dla bloków przekroczony na" -#: quota.c:265 quotasys.c:285 +#: quota.c:265 quotasys.c:293 msgid "none" msgstr "brak" @@ -342,8 +350,8 @@ #: quotacheck.c:127 #, c-format -msgid "Adding hardlink for ino %d\n" -msgstr "Dodawanie dowi±zania dla i-wêz³a %d\n" +msgid "Adding hardlink for ino %llu\n" +msgstr "Dodawanie dowi±zania dla i-wêz³a %llu\n" #: quotacheck.c:170 #, c-format @@ -478,11 +486,11 @@ msgid "Quota for %ss is enabled on mountpoint %s so quotacheck might damage the file.\n" msgstr "Limity %s w³±czone w punkcie montowania %s - quotacheck mo¿e uszkodziæ plik.\n" -#: quotacheck.c:587 quotacheck.c:856 +#: quotacheck.c:587 quotacheck.c:861 msgid "Should I continue" msgstr "Czy kontynuowaæ" -#: quotacheck.c:588 quotacheck.c:857 +#: quotacheck.c:588 quotacheck.c:862 #, c-format msgid "As you wish... Canceling check of this file.\n" msgstr "Wedle ¿yczenia... anulowanie sprawdzania tego pliku.\n" @@ -517,8 +525,8 @@ msgstr "Za nowy format pliku limitów na %s\n" #: quotacheck.c:654 -msgid "Data dumped.\n" -msgstr "Dane zrzucone.\n" +msgid "Renaming new files to proper names.\n" +msgstr "Zmiana nazw nowych plików na w³a¶ciwe.\n" #: quotacheck.c:656 #, c-format @@ -602,12 +610,16 @@ msgid "Cannot finish IO on new quotafile: %s\n" msgstr "Nie mo¿na zakoñczyæ we/wy na nowym pliku limitów: %s\n" -#: quotacheck.c:770 +#: quotacheck.c:764 +msgid "Data dumped.\n" +msgstr "Dane zrzucone.\n" + +#: quotacheck.c:769 #, c-format msgid "Cannot find checked quota file for %ss on %s!\n" msgstr "Nie mo¿na znale¼æ sprawdzonego pliku limitów %s na %s!\n" -#: quotacheck.c:774 +#: quotacheck.c:773 #, c-format msgid "" "Cannot turn %s quotas off on %s: %s\n" @@ -616,7 +628,7 @@ "Nie mo¿na wy³±czyæ limitów %s na %s: %s\n" "J±dro nie zauwa¿y zmian wykonanych przez checkquota.\n" -#: quotacheck.c:784 +#: quotacheck.c:786 #, c-format msgid "" "Cannot turn %s quotas on on %s: %s\n" @@ -625,47 +637,47 @@ "Nie mo¿na w³±czyæ limitów %s na %s: %s\n" "J±dro nie zauwa¿y zmian wykonanych przez checkquota.\n" -#: quotacheck.c:802 +#: quotacheck.c:807 #, c-format msgid "Substracting space used by old %s quota file.\n" msgstr "Odejmowanie miejsca u¿ytego przez stary plik limitów %s.\n" -#: quotacheck.c:804 +#: quotacheck.c:809 #, c-format msgid "Old %s file not found. Usage will not be substracted.\n" msgstr "Stary plik %s nie znaleziony. Miejsce nie bêdzie odjête.\n" -#: quotacheck.c:809 +#: quotacheck.c:814 #, c-format msgid "Cannot stat old %s quota file: %s\n" msgstr "Nie mo¿na wykonaæ stat na starym pliku limitów %s: %s\n" -#: quotacheck.c:821 +#: quotacheck.c:826 #, c-format msgid "Quota structure for %s owning quota file not present! Something is really wrong...\n" msgstr "Brak struktury limitów %s dla w³a¶ciciela pliku limitów! Co¶ jest naprawdê ¼le...\n" -#: quotacheck.c:826 +#: quotacheck.c:831 #, c-format msgid "Substracted %lu bytes.\n" msgstr "Odjêto %lu bajtów.\n" -#: quotacheck.c:836 +#: quotacheck.c:841 #, c-format msgid "Cannot stat mountpoint %s: %s\n" msgstr "Nie mo¿na wykonaæ stat na punkcie montowania %s: %s\n" -#: quotacheck.c:838 +#: quotacheck.c:843 #, c-format msgid "Mountpoint %s isn't a directory?!\n" msgstr "Punkt montowania %s nie jest katalogiem?!\n" -#: quotacheck.c:855 +#: quotacheck.c:860 #, c-format msgid "Cannot remount filesystem mounted on %s read-only. Counted values might not be right.\n" msgstr "Nie mo¿na przemontowaæ r/o systemu plików zamontowanego pod %s. Policzone warto¶ci mog± byæ b³êdne.\n" -#: quotacheck.c:862 +#: quotacheck.c:867 #, c-format msgid "" "Cannot remount filesystem mounted on %s read-only so counted values might not be right.\n" @@ -675,67 +687,67 @@ "warto¶ci mog± byæ b³êdne. Proszê zatrzymaæ wszystkie programy pisz±ce na ten\n" "system plików lub u¿yæ flagi -m, aby wymusiæ sprawdzanie.\n" -#: quotacheck.c:869 +#: quotacheck.c:874 msgid "Filesystem remounted read-only\n" msgstr "System plików przemontowany tylko do odczytu\n" -#: quotacheck.c:871 +#: quotacheck.c:876 #, c-format msgid "Scanning %s [%s] " msgstr "Skanowanie %s [%s] " -#: quotacheck.c:896 +#: quotacheck.c:901 msgid "done\n" msgstr "zrobiono\n" -#: quotacheck.c:897 +#: quotacheck.c:902 #, c-format msgid "Checked %d directories and %d files\n" msgstr "Sprawdzono %d katalogów i %d plików\n" -#: quotacheck.c:901 +#: quotacheck.c:906 #, c-format msgid "Cannot remount filesystem %s read-write. cannot write new quota files.\n" msgstr "Nie mo¿na przemontowaæ r/w systemu plików %s. Nie mo¿na zapisaæ nowych plików.\n" -#: quotacheck.c:902 +#: quotacheck.c:907 msgid "Filesystem remounted RW.\n" msgstr "Przemontowano system plików do zapisu i odczytu.\n" -#: quotacheck.c:939 +#: quotacheck.c:944 #, c-format msgid "Cannot find quota option on filesystem %s with quotas!\n" msgstr "Nie mo¿na znale¼æ opcji limitów dla systemu plików %s z limitami!\n" -#: quotacheck.c:946 +#: quotacheck.c:951 #, c-format msgid "Cannot detect quota format for journalled quota on %s\n" msgstr "Nie mo¿na wykryæ formatu limitów dla limitów z kronik± na %s\n" -#: quotacheck.c:986 quotasys.c:566 +#: quotacheck.c:991 quotasys.c:574 msgid "Can't initialize mountpoint scan.\n" msgstr "Nie mo¿na zainicjowaæ skanu punktów montowania.\n" -#: quotacheck.c:991 +#: quotacheck.c:996 #, c-format msgid "Skipping %s [%s]\n" msgstr "Pomijanie %s [%s]\n" -#: quotacheck.c:1007 +#: quotacheck.c:1012 #, c-format msgid "Cannot guess format from filename on %s. Please specify format on commandline.\n" msgstr "Nie mo¿na odgadn±æ formatu z nazwy pliku na %s. Proszê podaæ format w poleceniu.\n" -#: quotacheck.c:1011 +#: quotacheck.c:1016 #, c-format msgid "Detected quota format %s\n" msgstr "Wykryto format limitów %s\n" -#: quotacheck.c:1018 +#: quotacheck.c:1023 msgid "Can't find filesystem to check or filesystem not mounted with quota option.\n" msgstr "Nie znaleziono systemu plików do sprawdzenia lub jest zamontowany bez limitów.\n" -#: quotacheck.c:1031 +#: quotacheck.c:1036 #, c-format msgid "" "Allocated %d bytes memory\n" @@ -832,86 +844,82 @@ msgid "Found more structures for ID %u. Using values: BHARD: %Ld BSOFT: %Ld IHARD: %Ld ISOFT: %Ld\n" msgstr "Znaleziono wiêcej struktur dla ID %u. U¿ycie warto¶ci: BHARD: %Ld BSOFT %Ld IHARD: %Ld ISOFT: %Ld\n" -#: quotacheck_v2.c:167 +#: quotacheck_v2.c:169 #, c-format -msgid "" -"\n" -"Found more structures for ID %u. Values: BHARD: %Ld/%Ld BSOFT: %Ld/%Ld IHARD: %Ld/%Ld ISOFT: %Ld/%Ld\n" -msgstr "" -"\n" -"Znaleziono wiêcej struktur dla ID %u. Warto¶ci: BHARD %Ld/%Ld BSOFT: %Ld/%Ld IHARD: %Ld/%Ld ISOFT: %Ld/%Ld\n" +msgid "Found more structures for ID %u. Values: BHARD: %Ld/%Ld BSOFT: %Ld/%Ld IHARD: %Ld/%Ld ISOFT: %Ld/%Ld\n" +msgstr "Znaleziono wiêcej struktur dla ID %u. Warto¶ci: BHARD %Ld/%Ld BSOFT: %Ld/%Ld IHARD: %Ld/%Ld ISOFT: %Ld/%Ld\n" -#: quotacheck_v2.c:172 +#: quotacheck_v2.c:174 msgid "Should I use new values" msgstr "Czy u¿yæ nowych warto¶ci" -#: quotacheck_v2.c:182 +#: quotacheck_v2.c:184 #, c-format msgid "ID %u has more structures. User intervention needed (use -i for interactive mode or -n for automatic answer).\n" msgstr "ID %u ma wiêcej struktur. Potrzebna inwencja u¿ytkownika (-i dla trybu interaktywnego lub -n dla automatycznej odpowiedzi).\n" -#: quotacheck_v2.c:219 +#: quotacheck_v2.c:221 #, c-format msgid "Block %u is truncated.\n" msgstr "Blok %u jest uciêty.\n" -#: quotacheck_v2.c:228 +#: quotacheck_v2.c:230 #, c-format msgid "Reference to illegal block %u" msgstr "Odniesienie do nieprawid³owego bloku %u" -#: quotacheck_v2.c:235 +#: quotacheck_v2.c:237 #, c-format msgid "Block %u in tree referenced twice" msgstr "Dwukrotne odniesienie w drzewie do bloku %u" -#: quotacheck_v2.c:250 +#: quotacheck_v2.c:252 #, c-format msgid "Illegal free block reference to block %u" msgstr "B³êdne odniesienie pustego bloku do bloku %u" -#: quotacheck_v2.c:253 +#: quotacheck_v2.c:255 #, c-format msgid "Corrupted number of used entries (%u)" msgstr "Uszkodzona liczba u¿ytych wpisów (%u)" -#: quotacheck_v2.c:299 +#: quotacheck_v2.c:301 msgid "Checking quotafile headers...\n" msgstr "Sprawdzanie nag³ówków pliku limitów...\n" -#: quotacheck_v2.c:303 +#: quotacheck_v2.c:305 #, c-format msgid "Can't read header from quotafile %s: %s\n" msgstr "Nie mo¿na odczytaæ nag³ówka z pliku limitów %s: %s\n" -#: quotacheck_v2.c:305 +#: quotacheck_v2.c:307 #, c-format msgid "WARNING - Quotafile %s was probably truncated. Can't save quota settings...\n" msgstr "UWAGA - plik limitów %s zapewne by³ uciêty. Nie mo¿na zapisaæ ustawieñ...\n" -#: quotacheck_v2.c:310 +#: quotacheck_v2.c:312 #, c-format msgid "WARNING - Quota file %s has corrupted headers\n" msgstr "UWAGA - plik limitów %s ma uszkodzone nag³ówki\n" -#: quotacheck_v2.c:312 +#: quotacheck_v2.c:314 msgid "Headers checked.\n" msgstr "Nag³ówki sprawdzone.\n" -#: quotacheck_v2.c:330 +#: quotacheck_v2.c:332 #, c-format msgid "Headers of file %s checked. Going to load data...\n" msgstr "Nag³ówki pliku %s sprawdzone. Rozpoczêcie wczytywania danych...\n" -#: quotacheck_v2.c:338 +#: quotacheck_v2.c:340 msgid "Can't gather quota data. Tree root node corrupted.\n" msgstr "Nie mo¿na zgromadziæ danych o limitach. Korzeñ drzewa uszkodzony.\n" -#: quotacheck_v2.c:346 +#: quotacheck_v2.c:348 msgid "WARNING - Some data might be changed due to corruption.\n" msgstr "UWAGA - czê¶æ danych mo¿e byæ zmieniona z powodu uszkodzenia.\n" -#: quotacheck_v2.c:349 +#: quotacheck_v2.c:351 msgid "Not found any corrupted blocks. Congratulations.\n" msgstr "Nie znaleziono ¿adnych uszkodzonych bloków. Gratulacje.\n" @@ -935,7 +943,7 @@ msgid "Quota file not found or has wrong format.\n" msgstr "Pliku limitów nie znaleziono lub ma z³y format.\n" -#: quotaio.c:105 quotasys.c:480 +#: quotaio.c:105 quotasys.c:488 #, c-format msgid "Can't open quotafile %s: %s\n" msgstr "Nie mo¿na otworzyæ pliku limitów %s: %s\n" @@ -975,7 +983,7 @@ msgid "Cannot set quota for %s %d from kernel on %s: %s\n" msgstr "Nie mo¿na ustawiæ w j±drze limitu %s dla id %d na %s: %s\n" -#: quotaio_rpc.c:56 quotaio_v1.c:302 quotaio_v2.c:683 +#: quotaio_rpc.c:56 quotaio_v1.c:302 quotaio_v2.c:684 #, c-format msgid "Trying to write quota to readonly quotafile on %s\n" msgstr "Próba zapisu limitów do pliku limitów tylko do odczytu na %s\n" @@ -985,7 +993,7 @@ msgid "Trying to write info to readonly quotafile on %s.\n" msgstr "Próba zapisu informacji do pliku limitów tylko do odczytu na %s.\n" -#: quotaio_v1.c:356 quotaio_v2.c:805 +#: quotaio_v1.c:356 quotaio_v2.c:806 #, c-format msgid "Can't sync quotas on device %s: %s\n" msgstr "Nie mo¿na zsynchronizowaæ limitów na urz±dzeniu %s: %s\n" @@ -1032,17 +1040,17 @@ msgid "Quota structure has offset to other block (%u) than it should (%u).\n" msgstr "Struktura limitów ma wskazanie na inny blok (%u) ni¿ powinna (%u).\n" -#: quotaio_v2.c:585 +#: quotaio_v2.c:586 #, c-format msgid "Quota for id %u referenced but not present.\n" msgstr "Limit dla id %u nie istnieje, ale jest odniesienie do niego.\n" -#: quotaio_v2.c:661 +#: quotaio_v2.c:662 #, c-format msgid "Can't read quota structure for id %u: %s\n" msgstr "Nie mo¿na odczytaæ struktury limitów dla id %u: %s\n" -#: quotaio_v2.c:754 +#: quotaio_v2.c:755 #, c-format msgid "" "Illegal reference in %s quota file on %s. Quota file is probably corrupted.\n" @@ -1051,7 +1059,7 @@ "B³êdne odniesienie w pliku limitów %s na %s. Plik limitów jest prawdopodobnie\n" "uszkodzony. Proszê uruchomiæ quotacheck(8) i spróbowaæ ponownie.\n" -#: quotaio_v2.c:829 +#: quotaio_v2.c:830 #, c-format msgid "" "Statistics:\n" @@ -1194,6 +1202,10 @@ msgid "Required format %s not supported by kernel.\n" msgstr "Wymagany format %s nie obs³ugiwany przez j±dro.\n" +#: quotaon.c:322 +msgid "Warning: No quota format detected in the kernel.\n" +msgstr "Uwaga: Nie wykryto formatu limitów w j±drze.\n" + #: quotaon_xfs.c:34 #, c-format msgid "quotactl() on %s: %s\n" @@ -1419,7 +1431,7 @@ msgid "0seconds" msgstr "0 sekund" -#: quotaops.c:461 quotasys.c:317 +#: quotaops.c:461 quotasys.c:325 #, c-format msgid "%useconds" msgstr "%u sekund" @@ -1434,7 +1446,7 @@ "%s\n" #: quotaops.c:506 quotaops.c:642 -msgid "Bad time units. Units are 'second', 'minute', 'hour' and 'day'.\n" +msgid "Bad time units. Units are 'second', 'minute', 'hour', and 'day'.\n" msgstr "Z³e jednostki czasu. Jednostkami s± 'second', 'minute', 'hour' i 'day'.\n" #: quotaops.c:542 @@ -1537,17 +1549,17 @@ msgid "Number of in use dquot entries (user/group): %ld\n" msgstr "Liczba u¿ywanych wpisów dquot (u¿ytkownik/grupa): %ld\n" -#: quotasys.c:97 +#: quotasys.c:105 #, c-format msgid "User %s doesn't exist.\n" msgstr "U¿ytkownik %s nie istnieje.\n" -#: quotasys.c:124 +#: quotasys.c:132 #, c-format msgid "Group %s doesn't exist.\n" msgstr "Grupa %s nie istnieje.\n" -#: quotasys.c:226 +#: quotasys.c:234 #, c-format msgid "" "Unknown quota format: %s\n" @@ -1564,115 +1576,133 @@ " rpc - u¿ywanie wywo³añ RPC\n" " xfs - format limitów na XFS\n" -#: quotasys.c:241 +#: quotasys.c:249 msgid "Unknown format" msgstr "Nieznany format" -#: quotasys.c:305 +#: quotasys.c:313 #, c-format msgid "%ddays" msgstr "%d dni" -#: quotasys.c:307 +#: quotasys.c:315 #, c-format msgid "%02d:%02d" msgstr "%02d:%02d" -#: quotasys.c:319 +#: quotasys.c:327 #, c-format msgid "%uminutes" msgstr "%u minut" -#: quotasys.c:321 +#: quotasys.c:329 #, c-format msgid "%uhours" msgstr "%u godzin" -#: quotasys.c:323 +#: quotasys.c:331 #, c-format msgid "%udays" msgstr "%u dni" -#: quotasys.c:464 +#: quotasys.c:472 #, c-format msgid "Can't stat quota file %s: %s\n" msgstr "Nie mo¿na wykonaæ stat na pliku limitów %s: %s\n" -#: quotasys.c:587 +#: quotasys.c:595 msgid "Not all specified mountpoints are using quota.\n" msgstr "Nie wszystkie podane punkty montowania u¿ywaj± limitów.\n" -#: quotasys.c:601 +#: quotasys.c:609 #, c-format msgid "Error while releasing file on %s\n" msgstr "B³±d podczas zwalniania pliku na %s\n" -#: quotasys.c:658 +#: quotasys.c:666 #, c-format msgid "Can't create set for sigaction(): %s\n" msgstr "Nie mo¿na ustawiæ zbioru dla sigaction(): %s\n" -#: quotasys.c:661 +#: quotasys.c:669 #, c-format msgid "Can't set signal handler: %s\n" msgstr "Nie mo¿na ustawiæ obs³ugi sygna³u: %s\n" -#: quotasys.c:708 +#: quotasys.c:716 #, c-format msgid "Can't reset signal handler: %s\n" msgstr "Nie mo¿na przywróciæ obs³ugi sygna³u: %s\n" -#: quotasys.c:817 quotasys.c:822 warnquota.c:636 +#: quotasys.c:825 quotasys.c:830 warnquota.c:636 #, c-format msgid "Can't open %s: %s\n" msgstr "Nie mo¿na otworzyæ %s: %s\n" -#: quotasys.c:833 +#: quotasys.c:841 #, c-format msgid "Can't get device name for %s\n" msgstr "Nie mo¿na uzyskaæ nazwy urz±dzenia dla %s\n" -#: quotasys.c:865 +#: quotasys.c:873 #, c-format msgid "Can't resolve mountpoint path %s: %s\n" msgstr "Nie mo¿na rozwi±zaæ ¶cie¿ki punktu montowania %s: %s\n" -#: quotasys.c:871 +#: quotasys.c:879 #, c-format msgid "Can't statfs() %s: %s\n" msgstr "Nie mo¿na wykonaæ statfs() %s: %s\n" -#: quotasys.c:883 +#: quotasys.c:891 #, c-format msgid "Can't stat() mounted device %s: %s\n" msgstr "Nie mo¿na wykonaæ stat() na podmontowanym urz±dzeniu %s: %s\n" -#: quotasys.c:889 +#: quotasys.c:897 #, c-format msgid "Device (%s) filesystem is mounted on unsupported device type. Skipping.\n" msgstr "Urz±dzenie (%s), na którym jest podmontowany system plików, nie jest obs³ugiwanego typu. Pominiêto.\n" -#: quotasys.c:904 +#: quotasys.c:912 #, c-format msgid "Can't find device of loopback mount in options for %s. Skipping.\n" msgstr "Nie znaleziono urz±dzenia montowanego po loopbacku w opcjach dla %s. Pominiêto.\n" -#: quotasys.c:913 +#: quotasys.c:921 #, c-format msgid "Can't stat() loopback device %s: %s\n" msgstr "Nie mo¿na wykonaæ stat() na urz±dzeniu loopback %s: %s\n" -#: quotasys.c:918 +#: quotasys.c:926 #, c-format msgid "Loopback device %s isn't block device!\n" msgstr "Urz±dzenie loopback %s nie jest urz±dzeniem blokowym!\n" -#: quotasys.c:936 +#: quotasys.c:944 #, c-format msgid "Can't stat() mountpoint %s: %s\n" msgstr "Nie mo¿na wykonaæ stat() na punkcie montowania %s: %s\n" -#: quotasys.c:993 +#: quotasys.c:1004 +#, c-format +msgid "" +"Can't find a device with %s.\n" +"Skipping...\n" +msgstr "" +"Nie mo¿na znale¼æ urz±dzenia z %s.\n" +"Pomijanie...\n" + +#: quotasys.c:1008 +#, c-format +msgid "" +"Can't stat() a mountpoint with %s: %s\n" +"Skipping...\n" +msgstr "" +"Nie mo¿na wykonaæ stat() na podanym punkcie montowania %s: %s\n" +"Pomijanie...\n" + +#: quotasys.c:1016 #, c-format msgid "" "Can't stat() given mountpoint %s: %s\n" @@ -1681,31 +1711,31 @@ "Nie mo¿na wykonaæ stat() na podanym punkcie montowania %s: %s\n" "Pomijanie...\n" -#: quotasys.c:1003 +#: quotasys.c:1026 #, c-format -msgid "Can't find filesystem mountpoint for directory %s\n" +msgid "Can't find a filesystem mountpoint for directory %s\n" msgstr "Nie mo¿na znale¼æ punktu montowania systemu plików dla katalogu %s\n" -#: quotasys.c:1009 +#: quotasys.c:1032 #, c-format msgid "Can't resolve path %s: %s\n" msgstr "Nie mo¿na rozwi±zaæ ¶cie¿ki %s: %s\n" -#: quotasys.c:1020 +#: quotasys.c:1043 #, c-format msgid "Can't find mountpoint for device %s\n" msgstr "Nie mo¿na znale¼æ punktu montowania dla urz±dzenia %s\n" -#: quotasys.c:1026 +#: quotasys.c:1049 #, c-format msgid "Specified path %s is not directory nor device.\n" msgstr "Podana ¶cie¿ka %s nie jest katalogiem ani urz±dzeniem.\n" -#: quotasys.c:1034 +#: quotasys.c:1057 msgid "No correct mountpoint specified.\n" msgstr "Nie podano poprawnego punktu montowania.\n" -#: quotasys.c:1095 +#: quotasys.c:1118 #, c-format msgid "Mountpoint (or device) %s not found.\n" msgstr "Nie znaleziono punktu montowania (lub urz±dzenia) %s.\n" @@ -1757,7 +1787,7 @@ msgid "Group" msgstr "Grupa" -#: rquota_svc.c:82 +#: rquota_svc.c:86 #, c-format msgid "" "Usage: %s [options]\n" @@ -1765,22 +1795,24 @@ " -h --help shows this text\n" " -V --version shows version information\n" " -F --foreground starts the quota service in foreground\n" -" -s --no-setquota disables remote calls to setquota (default)\n" -" -S --setquota enables remote calls to setquota\n" " -I --autofs do not ignore mountpoints mounted by automounter\n" " -p --port listen on given port\n" +" -s --no-setquota disables remote calls to setquota (default)\n" +" -S --setquota enables remote calls to setquota\n" +" -x --xtab set an alternative file with NFSD export table\n" msgstr "" "Sk³adnia: %s [opcje]\n" "Opcje to:\n" -" -h --help wy¶wietlenie tego opisu\n" -" -V --version wy¶wietlenie informacji o wersji\n" -" -F --foreground uruchomienie us³ugi quota jako procesu pierwszoplanowego\n" -" -s --no-setquota wy³±czenie zdalnych wywo³añ setquota (domy¶lne)\n" -" -S --setquota w³±czenie zdalnych wywo³añ setquota\n" -" -I --autofs nie ignorowanie punktów obs³ugiwanych przez automounter\n" -" -p --port nas³uchiwanie na podanym porcie\n" +" -h --help wy¶wietlenie tego opisu\n" +" -V --version wy¶wietlenie informacji o wersji\n" +" -F --foreground uruchomienie us³ugi quota jako procesu pierwszoplanowego\n" +" -I --autofs nie ignorowanie punktów obs³ugiwanych przez automounter\n" +" -p --port nas³uchiwanie na podanym porcie\n" +" -s --no-setquota wy³±czenie zdalnych wywo³añ setquota (domy¶lne)\n" +" -S --setquota w³±czenie zdalnych wywo³añ setquota\n" +" -x --xtab <¶cie¿ka> ustawienie alternatywnego pliku z tabel± export NFSD\n" -#: rquota_svc.c:92 +#: rquota_svc.c:97 #, c-format msgid "" "Usage: %s [options]\n" @@ -1790,69 +1822,85 @@ " -F --foreground starts the quota service in foreground\n" " -I --autofs do not ignore mountpoints mounted by automounter\n" " -p --port listen on given port\n" +" -x --xtab set an alternative file with NFSD export table\n" msgstr "" "Sk³adnia: %s [opcje]\n" "Opcje to:\n" -" -h --help wy¶wietlenie tego opisu\n" -" -V --version wy¶wietlenie informacji o wersji\n" -" -F --foreground uruchomienie us³ugi quota jako procesu pierwszoplanowego\n" -" -I --autofs nie ignorowanie punktów obs³ugiwanych przez automounter\n" -" -p --port nas³uchiwanie na podanym porcie\n" +" -h --help wy¶wietlenie tego opisu\n" +" -V --version wy¶wietlenie informacji o wersji\n" +" -F --foreground uruchomienie us³ugi quota jako procesu pierwszoplanowego\n" +" -I --autofs nie ignorowanie punktów obs³ugiwanych przez automounter\n" +" -p --port nas³uchiwanie na podanym porcie\n" +" -x --xtab <¶cie¿ka> ustawienie alternatywnego pliku z tabel± export NFSD\n" -#: rquota_svc.c:136 +#: rquota_svc.c:144 #, c-format msgid "Illegal port number: %s\n" msgstr "B³êdny numer portu: %s\n" -#: rquota_svc.c:142 +#: rquota_svc.c:151 +#, c-format +msgid "Cannot access the specified xtab file %s: %s\n" +msgstr "Brak dostêpu do podanego pliku xtab %s: %s\n" + +#: rquota_svc.c:158 #, c-format msgid "Unknown option '%c'.\n" msgstr "Nieznana opcja '%c'.\n" -#: rquota_svc.c:166 +#: rquota_svc.c:182 #, c-format msgid "host %s attempted to call setquota when disabled\n" msgstr "host %s próbowa³ wywo³aæ setquota kiedy ta operacja jest wy³±czona\n" -#: rquota_svc.c:173 +#: rquota_svc.c:189 #, c-format msgid "host %s attempted to call setquota from port >= 1024\n" msgstr "host %s próbowa³ wywo³aæ setquota z portu >= 1024\n" -#: rquota_svc.c:209 +#: rquota_svc.c:225 #, c-format msgid "Denied access to host %s\n" msgstr "Odrzucono próbê dostêpu z hosta %s\n" -#: rquota_svc.c:297 rquota_svc.c:383 +#: rquota_svc.c:313 rquota_svc.c:399 msgid "unable to free arguments\n" msgstr "nie mo¿na usun±æ argumentów\n" -#: rquota_svc.c:424 +#: rquota_svc.c:422 +#, c-format +msgid "" +"Warning: Cannot open export table %s: %s\n" +"Using '/' as a pseudofilesystem root.\n" +msgstr "" +"Uwaga: Nie mo¿na otworzyæ tabeli export %s: %s\n" +"U¿ycie '/' jako g³ównego katalogu pseudo systemu plików.\n" + +#: rquota_svc.c:474 msgid "cannot create udp service.\n" msgstr "nie mo¿na utworzyæ us³ugi udp.\n" -#: rquota_svc.c:428 +#: rquota_svc.c:478 msgid "unable to register (RQUOTAPROG, RQUOTAVERS, udp).\n" msgstr "nie mo¿na zarejestrowaæ (RQUOTAPROG, RQUOTAVERS, udp).\n" -#: rquota_svc.c:432 +#: rquota_svc.c:482 msgid "unable to register (RQUOTAPROG, EXT_RQUOTAVERS, udp).\n" msgstr "nie mo¿na zarejestrowaæ (RQUOTAPROG, EXT_RQUOTAVERS, udp).\n" -#: rquota_svc.c:439 +#: rquota_svc.c:489 msgid "cannot create tcp service.\n" msgstr "nie mo¿na utworzyæ us³ugi tcp.\n" -#: rquota_svc.c:443 +#: rquota_svc.c:493 msgid "unable to register (RQUOTAPROG, RQUOTAVERS, tcp).\n" msgstr "nie mo¿na zarejestrowaæ (RQUOTAPROG, RQUOTAVERS, tcp).\n" -#: rquota_svc.c:447 +#: rquota_svc.c:497 msgid "unable to register (RQUOTAPROG, EXT_RQUOTAVERS, tcp).\n" msgstr "nie mo¿na zarejestrowaæ (RQUOTAPROG, EXT_RQOUTAVERS, tcp).\n" -#: rquota_svc.c:456 +#: rquota_svc.c:506 msgid "svc_run returned\n" msgstr "svc_run powróci³o\n" --- quota-3.13.orig/Changelog +++ quota-3.13/Changelog @@ -1,3 +1,19 @@ +Changes in quota-tools from 3.13 to 3.14 +* 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) @@ -384,7 +400,7 @@ 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 threats root as any normal user and he cannot + 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 --- quota-3.13.orig/common.h +++ quota-3.13/common.h @@ -13,7 +13,7 @@ # endif #endif -#define MY_EMAIL "mvw@planets.elm.net, jack@suse.cz" +#define MY_EMAIL "jack@suse.cz" /* Name of current program for error reporting */ extern char *progname; --- quota-3.13.orig/convertquota.8 +++ quota-3.13/convertquota.8 @@ -31,19 +31,19 @@ structure) to quota file. .SH OPTIONS .TP -.B -u +.B -u, --user convert user quota file. This is the default. .TP -.B -g +.B -g, --group convert group quota file. .TP -.B -f +.B -f, --convert-format convert from old file format to new one. This is the default. .TP -.B -e +.B -e, --convert-endian convert new file format from big endian to little endian. .TP -.B -V +.B -V, --version print version information. .SH FILES .TP 20 --- quota-3.13.orig/edquota.8 +++ quota-3.13/edquota.8 @@ -56,7 +56,7 @@ .IX "filesystem" "edquota command" "" "\fLedquota\fP \(em edit user quotas" .B edquota is a quota editor. One or more users or groups may be specified on the command -line. If a number is given in the place of user/group name it is threated as +line. If a number is given in the place of user/group name it is treated as an UID/GID. For each user or group a temporary file is created with an .SM ASCII representation of the current disk quotas for that user or group and an editor @@ -87,26 +87,26 @@ Only the super-user may edit quotas. .SH OPTIONS .TP -.B \-r +.B -r, --remote Edit also non-local quota use rpc.rquotad on remote server to set quota. This option is available only if quota tools were compiled with enabled support for setting quotas over RPC. The -.B \-n +.B -n option is equivalent, and is maintained for backward compatibility. .TP -.B \-u +.B -u, --user Edit the user quota. This is the default. .TP -.B \-g +.B -g, --group Edit the group quota. .TP -.B \-p \f2protoname\f1 +.B -p, --prototype=\f2protoname\f1 Duplicate the quotas of the prototypical user specified for each user specified. This is the normal mechanism used to initialize quotas for groups of users. .TP -.B \-F \f2format-name\f1 +.B -F, --format=\f2format-name\f1 Edit quota for specified format (ie. don't perform format autodetection). Possible format names are: .B vfsold @@ -118,11 +118,11 @@ .B xfs (quota on XFS filesystem) .TP -.B \-f \f2filesystem\f1 +.B \-f, --filesystem \f2filesystem\f1 Perform specified operations only for given filesystem (default is to perform operations for all filesystems with quota). .TP -.B \-t +.B \-t, --edit-period Edit the soft time limits for each filesystem. In old quota format if the time limits are zero, the default time limits in .B @@ -131,7 +131,7 @@ are understood. Time limits are printed in the greatest possible time unit such that the value is greater than or equal to one. .TP -.B \-T +.B \-T, --edit-times Edit time for the user/group when softlimit is enforced. Possible values are 'unset' or number and unit. Units are the same as in .B \-t --- quota-3.13.orig/edquota.c +++ quota-3.13/edquota.c @@ -34,7 +34,7 @@ #ident "$Copyright: (c) 1980, 1990 Regents of the University of California. $" #ident "$Copyright: All rights reserved. $" -#ident "$Id: edquota.c,v 1.16 2005/03/31 11:48:02 jkar8572 Exp $" +#ident "$Id: edquota.c,v 1.19 2006/05/13 01:05:24 jkar8572 Exp $" /* * Disk quota editor. @@ -52,6 +52,7 @@ #include #include #include +#include #include "pot.h" #include "quotaops.h" @@ -59,55 +60,80 @@ #include "quotaio.h" #include "common.h" +#define FL_EDIT_PERIOD 1 +#define FL_EDIT_TIMES 2 +#define FL_REMOTE 4 +#define FL_NUMNAMES 8 + char *progname; + +int flags, quotatype; +int fmt = -1; +char *protoname; char *dirname; void usage(void) { #if defined(RPC_SETQUOTA) - errstr("%s%s%s%s", - _("Usage:\n\tedquota [-r] [-u] [-F formatname] [-p username] [-f filesystem] username ...\n"), - _("\tedquota [-r] -g [-F formatname] [-p groupname] [-f filesystem] groupname ...\n"), - _("\tedquota [-r] [-u|g] [-F formatname] [-f filesystem] -t\n"), - _("\tedquota [-r] [-u|g] [-F formatname] [-f filesystem] -T username|groupname ...\n")); + char *rpcflag = "[-r] "; #else - errstr("%s%s%s%s", - _("Usage:\n\tedquota [-u] [-F formatname] [-p username] [-f filesystem] username ...\n"), - _("\tedquota -g [-F formatname] [-p groupname] [-f filesystem] groupname ...\n"), - _("\tedquota [-u|g] [-F formatname] [-f filesystem] -t\n"), - _("\tedquota [-u|g] [-F formatname] [-f filesystem] -T username|groupname ...\n")); + char *rpcflag = ""; +#endif + errstr(_("Usage:\n\tedquota %1$s[-u] [-F formatname] [-p username] [-f filesystem] username ...\n\ +\tedquota %1$s-g [-F formatname] [-p groupname] [-f filesystem] groupname ...\n\ +\tedquota %1$s[-u|g] [-F formatname] [-f filesystem] -t\n\ +\tedquota %1$s[-u|g] [-F formatname] [-f filesystem] -T username|groupname ...\n"), rpcflag); + fputs(_("\n\ +-u, --user edit user data\n\ +-g, --group edit group data\n"), stderr); +#if defined(RPC_SETQUOTA) + fputs(_("-r, --remote edit remote quota (via RPC)\n"), stderr); #endif + fputs(_("-F, --format=formatname edit quotas of a specific format\n\ +-p, --prototype=name copy data from a prototype user/group\n\ + --always-resolve always try to resolve name, even if it is\n\ + composed only of digits\n\ +-f, --filesystem=filesystem edit data only on a specific filesystem\n\ +-t, --edit-period edit grace period\n\ +-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); exit(1); } -int main(int argc, char **argv) +int parse_options(int argc, char **argv) { - struct dquot *protoprivs, *curprivs, *pprivs, *cprivs; - long id, protoid; - int quotatype, tmpfd, ret; - char *protoname = NULL; - int tflag = 0, Tflag = 0, pflag = 0, rflag = 0, fmt = -1; - struct quota_handle **handles; - char *tmpfil, *tmpdir = NULL; - - gettexton(); - progname = basename(argv[0]); + int ret; + struct option long_opts[] = { + { "help", 0, NULL, 'h' }, + { "version", 0, NULL, 'V' }, + { "prototype", 1, NULL, 'p' }, + { "user", 0, NULL, 'u' }, + { "group", 0, NULL, 'g' }, + { "format", 1, NULL, 'F' }, + { "filesystem", 1, NULL, 'f' }, +#if defined(RPC_SETQUOTA) + { "remote", 0, NULL, 'r' }, +#endif + { "always-resolve", 0, NULL, 256 }, + { "edit-period", 0, NULL, 't' }, + { "edit-times", 0, NULL, 'T' }, + { NULL, 0, NULL, 0 } + }; if (argc < 2) usage(); - dirname = NULL; quotatype = USRQUOTA; #if defined(RPC_SETQUOTA) - while ((ret = getopt(argc, argv, "ugrntTVp:F:f:")) != -1) { + while ((ret = getopt_long(argc, argv, "ugrntTVp:F:f:", long_opts, NULL)) != -1) { #else - while ((ret = getopt(argc, argv, "ugtTVp:F:f:")) != -1) { + while ((ret = getopt_long(argc, argv, "ugtTVp:F:f:", long_opts, NULL)) != -1) { #endif switch (ret) { case 'p': protoname = optarg; - pflag++; break; case 'g': quotatype = GRPQUOTA; @@ -115,17 +141,17 @@ #if defined(RPC_SETQUOTA) case 'n': case 'r': - rflag++; + flags |= FL_REMOTE; break; #endif case 'u': quotatype = USRQUOTA; break; case 't': - tflag++; + flags |= FL_EDIT_PERIOD; break; case 'T': - Tflag++; + flags |= FL_EDIT_TIMES; break; case 'F': if ((fmt = name2fmt(optarg)) == QF_ERROR) /* Error? */ @@ -134,6 +160,9 @@ case 'f': dirname = optarg; break; + case 256: + flags |= FL_NUMNAMES; + break; case 'V': version(); exit(0); @@ -142,51 +171,76 @@ } } argc -= optind; - argv += optind; - if ((tflag && argc != 0) || (Tflag && argc < 1)) + if (((flags & FL_EDIT_PERIOD) && argc != 0) || ((flags & FL_EDIT_TIMES) && argc < 1)) + usage(); + if ((flags & (FL_EDIT_PERIOD | FL_EDIT_TIMES)) && protoname) { + errstr(_("Prototype name does not make sence when editting grace period or times.\n")); usage(); + } + return optind; +} + +void copy_prototype(int argc, char **argv, struct quota_handle **handles) +{ + int ret, protoid, id; + struct dquot *protoprivs, *curprivs, *pprivs, *cprivs; + + ret = 0; + protoid = name2id(protoname, quotatype, !!(flags & FL_NUMNAMES), NULL); + protoprivs = getprivs(protoid, handles, 0); + while (argc-- > 0) { + id = name2id(*argv++, quotatype, !!(flags & FL_NUMNAMES), NULL); + curprivs = getprivs(id, handles, 0); + + for (pprivs = protoprivs, cprivs = curprivs; pprivs && cprivs; + pprivs = pprivs->dq_next, cprivs = cprivs->dq_next) { + if (!devcmp_handles(pprivs->dq_h, cprivs->dq_h)) { + errstr(_("fsname mismatch\n")); + continue; + } + cprivs->dq_dqb.dqb_bsoftlimit = + pprivs->dq_dqb.dqb_bsoftlimit; + cprivs->dq_dqb.dqb_bhardlimit = + pprivs->dq_dqb.dqb_bhardlimit; + cprivs->dq_dqb.dqb_isoftlimit = + pprivs->dq_dqb.dqb_isoftlimit; + cprivs->dq_dqb.dqb_ihardlimit = + pprivs->dq_dqb.dqb_ihardlimit; + update_grace_times(cprivs); + } + if (putprivs(curprivs, COMMIT_LIMITS) == -1) + ret = -1; + freeprivs(curprivs); + } + if (dispose_handle_list(handles) == -1) + ret = -1; + freeprivs(protoprivs); + exit(ret ? 1 : 0); +} + +int main(int argc, char **argv) +{ + struct dquot *curprivs; + int tmpfd, ret, id; + struct quota_handle **handles; + char *tmpfil, *tmpdir = NULL; + + gettexton(); + progname = basename(argv[0]); + ret = parse_options(argc, argv); + argc -= ret; + argv += ret; init_kernel_interface(); - handles = create_handle_list(dirname ? 1 : 0, dirname ? &dirname : NULL, quotatype, fmt, rflag ? 0 : IOI_LOCALONLY, 0); + handles = create_handle_list(dirname ? 1 : 0, dirname ? &dirname : NULL, quotatype, fmt, 0, (flags & FL_REMOTE) ? 0 : MS_LOCALONLY); if (!handles[0]) { dispose_handle_list(handles); fputs(_("No filesystems with quota detected.\n"), stderr); return 0; } - if (pflag) { - ret = 0; - protoid = name2id(protoname, quotatype, NULL); - protoprivs = getprivs(protoid, handles, 0); - while (argc-- > 0) { - id = name2id(*argv++, quotatype, NULL); - curprivs = getprivs(id, handles, 0); - - for (pprivs = protoprivs, cprivs = curprivs; pprivs && cprivs; - pprivs = pprivs->dq_next, cprivs = cprivs->dq_next) { - if (!devcmp_handles(pprivs->dq_h, cprivs->dq_h)) - errstr(_("fsname mismatch\n")); - else { - cprivs->dq_dqb.dqb_bsoftlimit = - pprivs->dq_dqb.dqb_bsoftlimit; - cprivs->dq_dqb.dqb_bhardlimit = - pprivs->dq_dqb.dqb_bhardlimit; - cprivs->dq_dqb.dqb_isoftlimit = - pprivs->dq_dqb.dqb_isoftlimit; - cprivs->dq_dqb.dqb_ihardlimit = - pprivs->dq_dqb.dqb_ihardlimit; - update_grace_times(cprivs); - } - } - if (putprivs(curprivs, COMMIT_LIMITS) == -1) - ret = -1; - freeprivs(curprivs); - } - if (dispose_handle_list(handles) == -1) - ret = -1; - freeprivs(protoprivs); - exit(ret ? 1 : 0); - } + if (protoname) + copy_prototype(argc, argv, handles); umask(077); if (getuid() == geteuid() && getgid() == getegid()) @@ -199,9 +253,9 @@ tmpfd = mkstemp(tmpfil); fchown(tmpfd, getuid(), getgid()); ret = 0; - if (tflag) { + if (flags & FL_EDIT_PERIOD) { if (writetimes(handles, tmpfd) < 0) { - errstr(_("Can't write grace times to file.\n")); + errstr(_("Cannot write grace times to file.\n")); ret = -1; } if (editprivs(tmpfil) < 0) { @@ -213,12 +267,12 @@ ret = -1; } } - else if (Tflag) { + else if (flags & FL_EDIT_TIMES) { for (; argc > 0; argc--, argv++) { - id = name2id(*argv, quotatype, NULL); + id = name2id(*argv, quotatype, !!(flags & FL_NUMNAMES), NULL); curprivs = getprivs(id, handles, 0); if (writeindividualtimes(curprivs, tmpfd, *argv, quotatype) < 0) { - errstr(_("Can't write individual grace times to file.\n")); + errstr(_("Cannot write individual grace times to file.\n")); ret = -1; continue; } @@ -228,7 +282,7 @@ continue; } if (readindividualtimes(curprivs, tmpfd) < 0) { - errstr(_("Can't read individual grace times from file.\n")); + errstr(_("Cannot read individual grace times from file.\n")); ret = -1; continue; } @@ -239,10 +293,10 @@ } else { for (; argc > 0; argc--, argv++) { - id = name2id(*argv, quotatype, NULL); + id = name2id(*argv, quotatype, !!(flags & FL_NUMNAMES), NULL); curprivs = getprivs(id, handles, 0); if (writeprivs(curprivs, tmpfd, *argv, quotatype) < 0) { - errstr(_("Can't write quotas to file.\n")); + errstr(_("Cannot write quotas to file.\n")); ret = -1; continue; } @@ -253,9 +307,9 @@ } close(tmpfd); if ((tmpfd = open(tmpfil, O_RDONLY)) < 0) - die(1, _("Can't reopen!")); + die(1, _("Cannot reopen!")); if (readprivs(curprivs, tmpfd) < 0) { - errstr(_("Can't read quotas from file.\n")); + errstr(_("Cannot read quotas from file.\n")); ret = -1; continue; } --- quota-3.13.orig/quota.1 +++ quota-3.13/quota.1 @@ -7,7 +7,7 @@ .B -F .I format-name ] [ -.BR -guvsil \ | +.BR -guvsilw \ | .B q ] .br @@ -16,7 +16,7 @@ .B -F .I format-name ] [ -.BR -uvsil \ | +.BR -uvsilw \ | .B q ] .IR user ... @@ -26,7 +26,7 @@ .B -F .I format-name ] [ -.BR -gvsil \ | +.BR -gvsilw \ | .B q ] .IR group ... @@ -42,7 +42,7 @@ the server machine is performed to get the information. .SH OPTIONS .TP -.B \-F \f2format-name\f1 +.B -F, --format=\f2format-name\f1 Show quota for specified format (ie. don't perform format autodetection). Possible format names are: .B vfsold @@ -54,39 +54,45 @@ .B xfs (quota on XFS filesystem) .TP -.B \-g +.B -g, --group Print group quotas for the group of which the user is a member. The optional .B group argument(s) restricts the display to the specified group(s). .TP -.B \-u +.B -u, --user flag is equivalent to the default. .TP -.B \-v +.B -v, --verbose will display quotas on filesystems where no storage is allocated. .TP -.B \-s +.B -s, --human-readable option will make .BR quota (1) try to choose units for showing limits, used space and used inodes. .TP -.B \-i +.B -i, --no-autofs ignore mountpoints mounted by automounter .TP -.B \-l +.B -l, --local-only report quotas only on local filesystems (ie. ignore NFS mounted filesystems). .TP -.B \-q +.B -q, --quiet Print a more terse message, containing only information on filesystems where usage is over quota. .TP -.B \-Q +.B -Q, --quiet-refuse Do not print error message if connection to rpc.rquotad is refused (usually this happens when rpc.rquotad is not running on the server). +.TP +.B -w, --no-wrap +Do not wrap the line if the device name is too long. This can be useful when parsing +the output of +.BR quota (1) +by a script. .LP Specifying both .B \-g --- quota-3.13.orig/quota.c +++ quota-3.13/quota.c @@ -34,7 +34,7 @@ #ident "$Copyright: (c) 1980, 1990 Regents of the University of California. $" #ident "$Copyright: All rights reserved. $" -#ident "$Id: quota.c,v 1.15 2004/04/20 19:33:05 jkar8572 Exp $" +#ident "$Id: quota.c,v 1.20 2006/05/13 01:05:24 jkar8572 Exp $" /* * Disk quota reporting program. @@ -68,112 +68,53 @@ #define FL_LOCALONLY 32 #define FL_QUIETREFUSE 64 #define FL_NOAUTOFS 128 +#define FL_NOWRAP 256 +#define FL_FSLIST 512 +#define FL_NUMNAMES 1024 int flags, fmt = -1; char *progname; -void usage(void); -int showquotas(int type, qid_t id); -void heading(int type, qid_t id, char *name, char *tag); - -int main(int argc, char **argv) -{ - int ngroups; - gid_t gidset[NGROUPS], *gidsetp; - int i, ret; - - gettexton(); - progname = basename(argv[0]); - - while ((ret = getopt(argc, argv, "guqvsVliQF:")) != -1) { - switch (ret) { - case 'g': - flags |= FL_GROUP; - break; - case 'u': - flags |= FL_USER; - break; - case 'q': - flags |= FL_QUIET; - break; - case 'v': - flags |= FL_VERBOSE; - break; - case 'F': - if ((fmt = name2fmt(optarg)) == QF_ERROR) /* Error? */ - exit(1); - break; - case 's': - flags |= FL_SMARTSIZE; - break; - case 'l': - flags |= FL_LOCALONLY; - break; - case 'Q': - flags |= FL_QUIETREFUSE; - break; - case 'i': - flags |= FL_NOAUTOFS; - break; - case 'V': - version(); - exit(0); - default: - usage(); - } - } - argc -= optind; - argv += optind; - - if (!(flags & FL_USER) && !(flags & FL_GROUP)) - flags |= FL_USER; - init_kernel_interface(); - - ret = 0; - if (argc == 0) { - if (flags & FL_USER) - ret |= showquotas(USRQUOTA, getuid()); - if (flags & FL_GROUP) { - ngroups = sysconf(_SC_NGROUPS_MAX); - if (ngroups > NGROUPS) { - gidsetp = malloc(ngroups * sizeof(gid_t)); - if (!gidsetp) - die(1, _("quota: gid set allocation (%d): %s\n"), ngroups, strerror(errno)); - } else { - gidsetp = &gidset[0]; - } - ngroups = getgroups(ngroups, gidsetp); - if (ngroups < 0) - die(1, _("quota: getgroups(): %s\n"), strerror(errno)); - for (i = 0; i < ngroups; i++) - ret |= showquotas(GRPQUOTA, gidsetp[i]); - } - exit(ret); - } - - if ((flags & FL_USER) && (flags & FL_GROUP)) - usage(); - - if (flags & FL_USER) - for (; argc > 0; argc--, argv++) - ret |= showquotas(USRQUOTA, user2uid(*argv, NULL)); - else if (flags & FL_GROUP) - for (; argc > 0; argc--, argv++) - ret |= showquotas(GRPQUOTA, group2gid(*argv, NULL)); - return ret; -} - void usage(void) { - errstr( "%s%s%s", - _("Usage: quota [-guqvs] [-l | -Q] [-i] [-F quotaformat]\n"), - _("\tquota [-qvs] [-l | -Q] [-i] [-F quotaformat] -u username ...\n"), - _("\tquota [-qvs] [-l | -Q] [-i] [-F quotaformat] -g groupname ...\n")); + errstr( "%s%s%s%s%s", + _("Usage: quota [-guqvsw] [-l | -Q] [-i] [-F quotaformat]\n"), + _("\tquota [-qvsw] [-l | -Q] [-i] [-F quotaformat] -u username ...\n"), + _("\tquota [-qvsw] [-l | -Q] [-i] [-F quotaformat] -g groupname ...\n"), + _("\tquota [-qvswugQ] [-F quotaformat] -f filesystem ...\n"), + _("\n\ +-u, --user display quota for user\n\ +-g, --group display quota for group\n\ +-q, --quiet print more terse message\n\ +-v, --verbose print more verbose message\n\ +-s, --human-readable display numbers in human friendly units (MB, GB...)\n\ + --always-resolve always try to translate name to id, even if it is\n\ + composed of only digits\n\ +-w, --no-wrap do not wrap long lines\n\ +-l, --local-only do not query NFS filesystems\n\ +-Q, --quiet-refuse do not print error message when NFS server does\n\ + not respond\n\ +-i, --no-autofs do not query autofs mountpoints\n\ +-F, --format=formatname display quota of a specific format\n\ +-f, --filesystem-list display quota information only for given filesystems\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); exit(1); } -int showquotas(int type, qid_t id) +void heading(int type, qid_t id, char *name, char *tag) +{ + printf(_("Disk quotas for %s %s (%cid %u): %s\n"), type2name(type), + name, *type2name(type), (uint) id, tag); + if (!(flags & FL_QUIET) && !tag[0]) { + printf("%15s%8s %7s%8s%8s%8s %7s%8s%8s\n", _("Filesystem"), + _("blocks"), _("quota"), _("limit"), _("grace"), + _("files"), _("quota"), _("limit"), _("grace")); + } +} + +int showquotas(int type, qid_t id, int mntcnt, char **mnt) { struct dquot *qlist, *q; char *msgi, *msgb; @@ -185,7 +126,7 @@ time(&now); id2name(id, type, name); - handles = create_handle_list(0, NULL, type, fmt, IOI_READONLY | ((flags & FL_LOCALONLY) ? IOI_LOCALONLY : 0), ((flags & FL_NOAUTOFS) ? MS_NO_AUTOFS : 0)); + handles = create_handle_list(mntcnt, mnt, type, fmt, IOI_READONLY, ((flags & FL_NOAUTOFS) ? MS_NO_AUTOFS : 0) | ((flags & FL_LOCALONLY) ? MS_LOCALONLY : 0)); qlist = getprivs(id, handles, !!(flags & FL_QUIETREFUSE)); over = 0; for (q = qlist; q; q = q->dq_next) { @@ -240,7 +181,7 @@ if (!lines++) heading(type, id, name, ""); - if (strlen(q->dq_h->qh_quotadev) > 15) + if (strlen(q->dq_h->qh_quotadev) > 15 && !(flags & FL_NOWRAP)) printf("%s\n%15s", q->dq_h->qh_quotadev, ""); else printf("%15s", q->dq_h->qh_quotadev); @@ -250,14 +191,14 @@ space2str(q->dq_dqb.dqb_bsoftlimit, numbuf[1], !!(flags & FL_SMARTSIZE)); space2str(q->dq_dqb.dqb_bhardlimit, numbuf[2], !!(flags & FL_SMARTSIZE)); printf(" %7s%c %6s %7s %7s", numbuf[0], bover ? '*' : ' ', numbuf[1], - numbuf[2], bover > 1 ? timebuf : ""); + numbuf[2], bover ? timebuf : ""); if (iover) difftime2str(q->dq_dqb.dqb_itime, timebuf); number2str(q->dq_dqb.dqb_curinodes, numbuf[0], !!(flags & FL_SMARTSIZE)); number2str(q->dq_dqb.dqb_isoftlimit, numbuf[1], !!(flags & FL_SMARTSIZE)); number2str(q->dq_dqb.dqb_ihardlimit, numbuf[2], !!(flags & FL_SMARTSIZE)); printf(" %7s%c %6s %7s %7s\n", numbuf[0], iover ? '*' : ' ', numbuf[1], - numbuf[2], iover > 1 ? timebuf : ""); + numbuf[2], iover ? timebuf : ""); continue; } } @@ -268,13 +209,120 @@ return over > 0 ? 1 : 0; } -void heading(int type, qid_t id, char *name, char *tag) +int main(int argc, char **argv) { - printf(_("Disk quotas for %s %s (%cid %d): %s\n"), type2name(type), - name, *type2name(type), id, tag); - if (!(flags & FL_QUIET) && !tag[0]) { - printf("%15s%8s %7s%8s%8s%8s %7s%8s%8s\n", _("Filesystem"), - _("blocks"), _("quota"), _("limit"), _("grace"), - _("files"), _("quota"), _("limit"), _("grace")); + int ngroups; + gid_t gidset[NGROUPS], *gidsetp; + int i, ret; + struct option long_opts[] = { + { "help", 0, NULL, 'h' }, + { "version", 0, NULL, 'V' }, + { "user", 0, NULL, 'u' }, + { "group", 0, NULL, 'g' }, + { "quiet", 0, NULL, 'q' }, + { "verbose", 0, NULL, 'v' }, + { "human-readable", 0, NULL, 's' }, + { "always-resolve", 0, NULL, 256 }, + { "local-only", 0, NULL, 'l' }, + { "no-autofs", 0, NULL, 'i' }, + { "quiet-refuse", 0, NULL, 'Q' }, + { "format", 1, NULL, 'F' }, + { "no-wrap", 0, NULL, 'w' }, + { "filesystem-list", 0, NULL, 'f' }, + { NULL, 0, NULL, 0 } + }; + + gettexton(); + progname = basename(argv[0]); + + while ((ret = getopt_long(argc, argv, "guqvsVliQF:wf", long_opts, NULL)) != -1) { + switch (ret) { + case 'g': + flags |= FL_GROUP; + break; + case 'u': + flags |= FL_USER; + break; + case 'q': + flags |= FL_QUIET; + break; + case 'v': + flags |= FL_VERBOSE; + break; + case 'F': + if ((fmt = name2fmt(optarg)) == QF_ERROR) /* Error? */ + exit(1); + break; + case 's': + flags |= FL_SMARTSIZE; + break; + case 256: + flags |= FL_NUMNAMES; + break; + case 'l': + flags |= FL_LOCALONLY; + break; + case 'Q': + flags |= FL_QUIETREFUSE; + break; + case 'i': + flags |= FL_NOAUTOFS; + break; + case 'w': + flags |= FL_NOWRAP; + break; + case 'f': + flags |= FL_FSLIST; + break; + case 'V': + version(); + exit(0); + default: + usage(); + } } + argc -= optind; + argv += optind; + + if (!(flags & FL_USER) && !(flags & FL_GROUP)) + flags |= FL_USER; + if (flags & FL_FSLIST && flags & (FL_LOCALONLY | FL_NOAUTOFS)) + errstr(_("Warning: Ignoring -%c when filesystem list specified.\n"), flags & FL_LOCALONLY ? 'l' : 'i'); + + init_kernel_interface(); + + ret = 0; + if (argc == 0 || flags & FL_FSLIST) { + if (flags & FL_FSLIST && argc == 0) + die(1, _("No filesystem specified.\n")); + if (flags & FL_USER) + ret |= showquotas(USRQUOTA, getuid(), argc, argv); + if (flags & FL_GROUP) { + ngroups = sysconf(_SC_NGROUPS_MAX); + if (ngroups > NGROUPS) { + gidsetp = malloc(ngroups * sizeof(gid_t)); + if (!gidsetp) + die(1, _("Gid set allocation (%d): %s\n"), ngroups, strerror(errno)); + } else { + gidsetp = &gidset[0]; + } + ngroups = getgroups(ngroups, gidsetp); + if (ngroups < 0) + die(1, _("getgroups(): %s\n"), strerror(errno)); + for (i = 0; i < ngroups; i++) + ret |= showquotas(GRPQUOTA, gidsetp[i], argc, argv); + } + exit(ret); + } + + if ((flags & FL_USER) && (flags & FL_GROUP)) + usage(); + + if (flags & FL_USER) + for (; argc > 0; argc--, argv++) + ret |= showquotas(USRQUOTA, user2uid(*argv, !!(flags & FL_NUMNAMES), NULL), 0, NULL); + else if (flags & FL_GROUP) + for (; argc > 0; argc--, argv++) + ret |= showquotas(GRPQUOTA, group2gid(*argv, !!(flags & FL_NUMNAMES), NULL), 0, NULL); + return ret; } --- quota-3.13.orig/quotacheck.8 +++ quota-3.13/quotacheck.8 @@ -70,65 +70,65 @@ .BR \-M . .SH OPTIONS .TP -.B \-b +.B -b, --backup Forces .B quotacheck to make backups of the quota file before writing the new data. .TP -.B \-v +.B -v, --verbose .B quotacheck reports its operation as it progresses. Normally it operates silently. If the option is specified twice, also the current directory is printed (note that printing can slow down the scan measurably). .TP -.B \-d +.B -d, --debug Enable debugging mode. It will result in a lot of information which can be used in debugging the program. The output is very verbose and the scan will be slow. .TP -.B \-u +.B -u, --user Only user quotas listed in .I /etc/mtab or on the filesystems specified are to be checked. This is the default action. .TP -.B \-g +.B -g, --group Only group quotas listed in .I /etc/mtab or on the filesystems specified are to be checked. .TP -.B \-c +.B -c, --create-files Don't read existing quota files. Just perform a new scan and save it to disk. .B quotacheck also skips scanning of old quota files when they are not found. .TP -.B \-f +.B -f, --force Forces checking and writing of new quota files on filesystems with quotas enabled. This is not recommended as the created quota files may be out of sync. .TP -.B \-M +.B -M, --try-remount This flag forces checking of filesystem in read-write mode if a remount fails. Do this only when you are sure no process will write to a filesystem while scanning. .TP -.B \-m +.B -m, --no-remount Don't try to remount filesystem read-only. See comment with option .BR \-M . .TP -.B \-i +.B -i, --interactive Interactive mode. By default .B quotacheck exits when it finds an error. In interactive mode user is asked for input instead. See option .BR \-n . .TP -.B \-n +.B -n, --use-first-dquot If the quota files become corrupted, it is possible for duplicate entries for a single user or group ID to exist. Normally in this case, .B quotacheck exits or asks user for input. When this option is set, the first entry found is always used (this option works in interactive mode too). .TP -.B \-F \f2format-name\f1 +.B -F, --format=\f2format-name\f1 Check and fix quota files of specified format (ie. don't perform format auto-detection). This is recommended as detection might not work well on corrupted quota files. Possible format names are: @@ -141,11 +141,11 @@ .B xfs (quota on XFS filesystem) .TP -.B \-a +.B -a, --all Check all mounted non-NFS filesystems in .B /etc/mtab .TP -.B \-R +.B -R, --exclude-root When used together with the .B \-a option, all filesystems except for the root filesystem are checked for --- quota-3.13.orig/quotacheck.c +++ quota-3.13/quotacheck.c @@ -8,7 +8,7 @@ * New quota format implementation - Jan Kara - Sponsored by SuSE CR */ -#ident "$Id: quotacheck.c,v 1.47 2005/06/24 14:04:23 jkar8572 Exp $" +#ident "$Id: quotacheck.c,v 1.51 2006/05/13 01:05:24 jkar8572 Exp $" #include #include @@ -275,8 +275,14 @@ static int slow_down; if (flags & FL_VERYVERBOSE && msg) { + int len = strlen(msg); + putchar('\r'); - printf("%-70s ", msg); + printf("%.70s", msg); + if (len > 70) + fputs("...", stdout); + else + printf("%*s",73-len, ""); } if (flags & FL_VERYVERBOSE || ++slow_down >= BLIT_RATIO) { putchar(bits[bitc]); @@ -290,7 +296,24 @@ static void usage(void) { - printf(_("Utility for checking and repairing quota files.\n%s [-gucfinvdmMR] [-F ] filesystem|-a\n"), progname); + printf(_("Utility for checking and repairing quota files.\n%s [-gucbfinvdmMR] [-F ] filesystem|-a\n\n\ +-u, --user check user files\n\ +-g, --group check group files\n\ +-c, --create-files create new quota files\n\ +-b, --backup create backups of old quota files\n\ +-f, --force force check even if quotas are enabled\n\ +-i, --interactive interactive mode\n\ +-n, --use-first-dquot use the first copy of duplicated structure\n\ +-v, --verbose print more information\n\ +-d, --debug print even more messages\n\ +-m, --no-remount do not remount filesystem read-only\n\ +-M, --try-remount try remounting filesystem read-only,\n\ + continue even if it fails\n\ +-R, --exclude-root exclude root when checking all filesystems\n\ +-F, --format=formatname check quota files of specific format\n\ +-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); exit(1); } @@ -298,8 +321,27 @@ static void parse_options(int argcnt, char **argstr) { int ret; + struct option long_opts[] = { + { "version", 0, NULL, 'V' }, + { "help", 0, NULL, 'h' }, + { "backup", 0, NULL, 'b' }, + { "create-files", 0, NULL, 'c' }, + { "verbose", 0, NULL, 'v' }, + { "debug", 0, NULL, 'd' }, + { "user", 0, NULL, 'u' }, + { "group", 0, NULL, 'g' }, + { "interactive", 0, NULL, 'i' }, + { "use-first-dquot", 0, NULL, 'n' }, + { "force", 0, NULL, 'f' }, + { "format", 1, NULL, 'F' }, + { "no-remount", 0, NULL, 'm' }, + { "try-remount", 0, NULL, 'M' }, + { "exclude-root", 0, NULL, 'R' }, + { "all", 0, NULL, 'a' }, + { NULL, 0, NULL, 0 } + }; - while ((ret = getopt(argcnt, argstr, "VhbcvugidnfF:mMRa")) != -1) { + while ((ret = getopt_long(argcnt, argstr, "VhbcvugidnfF:mMRa", long_opts, NULL)) != -1) { switch (ret) { case 'b': flags |= FL_BACKUPS; @@ -840,7 +882,7 @@ if (lstat(mnt->mnt_dir, &st) < 0) die(2, _("Cannot stat mountpoint %s: %s\n"), mnt->mnt_dir, strerror(errno)); if (!S_ISDIR(st.st_mode)) - die(2, _("Mountpoint %s isn't a directory?!\n"), mnt->mnt_dir); + die(2, _("Mountpoint %s is not a directory?!\n"), mnt->mnt_dir); cur_dev = st.st_dev; files_done = dirs_done = 0; if (ucheck) @@ -889,6 +931,8 @@ goto out; } dirs_done++; + if (flags & FL_VERBOSE || flags & FL_VERYVERBOSE) + fputs(_("done\n"), stdout); if (ucheck) { sub_quota_file(mnt, USRQUOTA, USRQUOTA); sub_quota_file(mnt, USRQUOTA, GRPQUOTA); @@ -897,8 +941,6 @@ sub_quota_file(mnt, GRPQUOTA, USRQUOTA); sub_quota_file(mnt, GRPQUOTA, GRPQUOTA); } - if (flags & FL_VERBOSE) - fputs(_("done\n"), stdout); debug(FL_DEBUG | FL_VERBOSE, _("Checked %d directories and %d files\n"), dirs_done, files_done); if (remounted) { @@ -959,7 +1001,7 @@ space = option + strlen(option); if (space-option > sizeof(fmtbuf)) goto jquota_err; - sstrncpy(fmtbuf, option+1, space-option+1); + sstrncpy(fmtbuf, option+1, space-option); if ((fmt = name2fmt(fmtbuf)) == QF_ERROR) goto jquota_err; return fmt; @@ -988,7 +1030,7 @@ int checked = 0; if (init_mounts_scan((flags & FL_ALL) ? 0 : 1, &mntpoint, 0) < 0) - die(2, _("Can't initialize mountpoint scan.\n")); + die(2, _("Cannot initialize mountpoint scan.\n")); while ((mnt = get_next_mount())) { if (flags & FL_ALL && flags & FL_NOROOT && !strcmp(mnt->mnt_dir, "/")) continue; @@ -1020,7 +1062,7 @@ } end_mounts_scan(); if (!checked && (!(flags & FL_ALL) || flags & (FL_VERBOSE | FL_DEBUG))) - errstr(_("Can't find filesystem to check or filesystem not mounted with quota option.\n")); + errstr(_("Cannot find filesystem to check or filesystem not mounted with quota option.\n")); } int main(int argc, char **argv) --- quota-3.13.orig/convertquota.c +++ quota-3.13/convertquota.c @@ -11,6 +11,7 @@ #include #include #include +#include #include @@ -34,7 +35,13 @@ static void usage(void) { - errstr(_("Utility for converting quota files.\nUsage:\n\t%s [-u] [-g] [-e|-f] mountpoint\n"), progname); + errstr(_("Utility for converting quota files.\nUsage:\n\t%s [options] mountpoint\n\n\ +-u, --user convert user quota file\n\ +-g, --group convert group quota file\n\ +-e, --convert-endian convert quota file to correct endianity\n\ +-f, --convert-format 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); exit(1); } @@ -42,9 +49,18 @@ static void parse_options(int argcnt, char **argstr) { int ret; + struct option long_opts[] = { + { "help", 0, NULL, 'h'}, + { "version", 0, NULL, 'V'}, + { "user", 0, NULL, 'u'}, + { "group", 0, NULL, 'g'}, + { "convert-endian", 0, NULL, 'e'}, + { "convert-format", 0, NULL, 'f'}, + { NULL, 0, NULL, 0} + }; action = ACT_FORMAT; - while ((ret = getopt(argcnt, argstr, "Vugefh:")) != -1) { + while ((ret = getopt_long(argcnt, argstr, "Vugefh:", long_opts, NULL)) != -1) { switch (ret) { case '?': case 'h': @@ -118,7 +134,7 @@ lseek(fd, blk << V2_DQBLKSIZE_BITS, SEEK_SET); err = read(fd, buf, V2_DQBLKSIZE); if (err < 0) - die(2, _("Can't read block %u: %s\n"), blk, strerror(errno)); + die(2, _("Cannot read block %u: %s\n"), blk, strerror(errno)); else if (err != V2_DQBLKSIZE) memset(buf + err, 0, V2_DQBLKSIZE - err); } @@ -142,7 +158,7 @@ endian_disk2memdqblk(&dquot.dq_dqb, ddata + i); dquot.dq_id = __be32_to_cpu(ddata[i].dqb_id); if (qn->qh_ops->commit_dquot(&dquot, COMMIT_ALL) < 0) - errstr(_("Can't commit dquot for id %u: %s\n"), + errstr(_("Cannot commit dquot for id %u: %s\n"), (uint)dquot.dq_id, strerror(errno)); } freedqbuf(buf); @@ -190,7 +206,7 @@ lseek(fd, 0, SEEK_SET); if (read(fd, &head, sizeof(head)) != sizeof(head)) { - errstr(_("Can't read header of old quotafile.\n")); + errstr(_("Cannot read header of old quotafile.\n")); return -1; } if (__be32_to_cpu(head.dqh_magic) != file_magics[type] || __be32_to_cpu(head.dqh_version) > known_versions[type]) { @@ -205,7 +221,7 @@ struct v2_disk_dqinfo dinfo; if (read(fd, &dinfo, sizeof(dinfo)) != sizeof(dinfo)) { - errstr(_("Can't read information about old quotafile.\n")); + errstr(_("Cannot read information about old quotafile.\n")); return -1; } qn->qh_info.u.v2_mdqi.dqi_flags = __be32_to_cpu(dinfo.dqi_flags); @@ -234,7 +250,7 @@ newdquot.dq_dqb.dqb_btime = dquot->dq_dqb.dqb_btime; newdquot.dq_dqb.dqb_itime = dquot->dq_dqb.dqb_itime; if (qn->qh_ops->commit_dquot(&newdquot, COMMIT_ALL) < 0) { - errstr(_("Can't commit dquot for id %u: %s\n"), + errstr(_("Cannot commit dquot for id %u: %s\n"), (uint)dquot->dq_id, strerror(errno)); return -1; } @@ -247,13 +263,13 @@ int ret = 0; if (get_qf_name(mnt, type, (1 << QF_VFSV0), 0, &qfname) < 0) { - errstr(_("Can't get name of new quotafile.\n")); + errstr(_("Cannot get name of new quotafile.\n")); return -1; } strcpy(namebuf, qfname); sstrncat(namebuf, ".new", sizeof(namebuf)); if (rename(namebuf, qfname) < 0) { - errstr(_("Can't rename new quotafile %s to name %s: %s\n"), + errstr(_("Cannot rename new quotafile %s to name %s: %s\n"), namebuf, qfname, strerror(errno)); ret = -1; } @@ -266,13 +282,13 @@ struct quota_handle *qo; int ret = 0; - if (!(qo = init_io(mnt, type, QF_VFSOLD, IOI_LOCALONLY | IOI_OPENFILE))) { - errstr(_("Can't open old format file for %ss on %s\n"), + if (!(qo = init_io(mnt, type, QF_VFSOLD, IOI_OPENFILE))) { + errstr(_("Cannot open old format file for %ss on %s\n"), type2name(type), mnt->mnt_dir); return -1; } if (!(qn = new_io(mnt, type, QF_VFSV0))) { - errstr(_("Can't create file for %ss for new format on %s: %s\n"), + errstr(_("Cannot create file for %ss for new format on %s: %s\n"), type2name(type), mnt->mnt_dir, strerror(errno)); end_io(qo); return -1; @@ -295,7 +311,7 @@ if (get_qf_name(mnt, type, (1 << QF_VFSV0), NF_EXIST, &qfname) < 0) return -1; if ((ofd = open(qfname, O_RDONLY)) < 0) { - errstr(_("Can't open old quota file on %s: %s\n"), mnt->mnt_dir, strerror(errno)); + errstr(_("Cannot open old quota file on %s: %s\n"), mnt->mnt_dir, strerror(errno)); free(qfname); return -1; } @@ -305,7 +321,7 @@ return -1; } if (!(qn = new_io(mnt, type, QF_VFSV0))) { - errstr(_("Can't create file for %ss for new format on %s: %s\n"), + errstr(_("Cannot create file for %ss for new format on %s: %s\n"), type2name(type), mnt->mnt_dir, strerror(errno)); close(ofd); return -1; --- quota-3.13.orig/quotacheck_v1.c +++ quota-3.13/quotacheck_v1.c @@ -27,7 +27,7 @@ lseek(fd, 0, SEEK_SET); while ((err = read(fd, &ddqblk, sizeof(ddqblk)))) { if (err < 0) - die(1, _("Can't read entry for id %u from quotafile %s: %s\n"), (uint) id, + die(1, _("Cannot read entry for id %u from quotafile %s: %s\n"), (uint) id, filename, strerror(errno)); if (err != sizeof(ddqblk)) { errstr(_("Entry for id %u is truncated.\n"), @@ -63,11 +63,11 @@ lseek(fd, 0, SEEK_SET); err = read(fd, &ddqblk, sizeof(ddqblk)); if (err < 0) - die(1, _("Can't read first entry from quotafile %s: %s\n"), filename, + die(1, _("Cannot read first entry from quotafile %s: %s\n"), filename, strerror(errno)); if (err != sizeof(ddqblk)) { errstr( - _("WARNING - Quotafile %s was probably truncated. Can't save quota settings...\n"), + _("WARNING - Quotafile %s was probably truncated. Cannot save quota settings...\n"), filename); return -1; } --- quota-3.13.orig/quotaio.c +++ quota-3.13/quotaio.c @@ -102,7 +102,7 @@ if (!QIO_ENABLED(h) || flags & IOI_OPENFILE) { /* Need to open file? */ /* We still need to open file for operations like 'repquota' */ if ((fd = open(qfname, QIO_RO(h) ? O_RDONLY : O_RDWR)) < 0) { - errstr(_("Can't open quotafile %s: %s\n"), + errstr(_("Cannot open quotafile %s: %s\n"), qfname, strerror(errno)); goto out_handle; } @@ -125,7 +125,7 @@ memset(&h->qh_info, 0, sizeof(h->qh_info)); if (h->qh_ops->init_io && h->qh_ops->init_io(h) < 0) { - errstr(_("Can't initialize quota on %s: %s\n"), h->qh_quotadev, strerror(errno)); + errstr(_("Cannot initialize quota on %s: %s\n"), h->qh_quotadev, strerror(errno)); goto out_lock; } return h; @@ -163,7 +163,7 @@ sstrncat(namebuf, ".new", PATH_MAX); free(qfname); if ((fd = open(namebuf, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR)) < 0) { - errstr(_("Can't create new quotafile %s: %s\n"), + errstr(_("Cannot create new quotafile %s: %s\n"), namebuf, strerror(errno)); return NULL; } --- quota-3.13.orig/quotacheck_v2.c +++ quota-3.13/quotacheck_v2.c @@ -53,12 +53,12 @@ err = read(fd, &dinfo, sizeof(struct v2_disk_dqinfo)); if (err < 0) { - errstr(_("Can't read info from quota file %s: %s\n"), + errstr(_("Cannot read info from quota file %s: %s\n"), filename, strerror(errno)); return -1; } if (err != sizeof(struct v2_disk_dqinfo)) { - errstr(_("WARNING - Quota file %s was probably truncated. Can't save quota settings...\n"), + errstr(_("WARNING - Quota file %s was probably truncated. Cannot save quota settings...\n"), filename); return -1; } @@ -216,7 +216,7 @@ lseek(fd, blk << V2_DQBLKSIZE_BITS, SEEK_SET); rd = read(fd, buf, V2_DQBLKSIZE); if (rd < 0) - die(2, _("Can't read block %u: %s\n"), blk, strerror(errno)); + die(2, _("Cannot read block %u: %s\n"), blk, strerror(errno)); if (rd != V2_DQBLKSIZE) { debug(FL_VERBOSE | FL_DEBUG, _("Block %u is truncated.\n"), blk); memset(buf + rd, 0, V2_DQBLKSIZE - rd); @@ -302,9 +302,9 @@ lseek(fd, 0, SEEK_SET); err = read(fd, &head, sizeof(head)); if (err < 0) - die(1, _("Can't read header from quotafile %s: %s\n"), filename, strerror(errno)); + die(1, _("Cannot read header from quotafile %s: %s\n"), filename, strerror(errno)); if (err != sizeof(head)) { - errstr(_("WARNING - Quotafile %s was probably truncated. Can't save quota settings...\n"), + errstr(_("WARNING - Quotafile %s was probably truncated. Cannot save quota settings...\n"), filename); return -1; } @@ -337,7 +337,7 @@ if (check_tree_ref(0, V2_DQTREEOFF, blocks, 1, &corrupted, &lastblk) >= 0) ret = check_tree_blk(fd, V2_DQTREEOFF, 0, type, blocks, &corrupted, &lastblk); else - errstr(_("Can't gather quota data. Tree root node corrupted.\n")); + errstr(_("Cannot gather quota data. Tree root node corrupted.\n")); #ifdef DEBUG_MALLOC free_mem += (blocks + 7) >> 3; #endif --- quota-3.13.orig/quotaio_v1.c +++ quota-3.13/quotaio_v1.c @@ -34,7 +34,7 @@ #ident "$Copyright: (c) 1980, 1990 Regents of the University of California. $" #ident "$Copyright: All rights reserved. $" -#ident "$Id: quotaio_v1.c,v 1.14 2004/05/24 19:39:15 jkar8572 Exp $" +#ident "$Id: quotaio_v1.c,v 1.15 2005/11/21 22:30:23 jkar8572 Exp $" #include #include @@ -353,7 +353,7 @@ if (QIO_ENABLED(h)) /* Kernel uses same file? */ if (quotactl(QCMD((kernel_iface == IFACE_GENERIC) ? Q_SYNC : Q_6_5_SYNC, h->qh_type), h->qh_quotadev, 0, NULL) < 0) - die(4, _("Can't sync quotas on device %s: %s\n"), h->qh_quotadev, + die(4, _("Cannot sync quotas on device %s: %s\n"), h->qh_quotadev, strerror(errno)); memset(dquot, 0, sizeof(*dquot)); dquot->dq_h = h; --- quota-3.13.orig/quotaio_v2.c +++ quota-3.13/quotaio_v2.c @@ -273,7 +273,7 @@ lseek(h->qh_fd, blk << V2_DQBLKSIZE_BITS, SEEK_SET); err = read(h->qh_fd, buf, V2_DQBLKSIZE); if (err < 0) - die(2, _("Can't read block %u: %s\n"), blk, strerror(errno)); + die(2, _("Cannot read block %u: %s\n"), blk, strerror(errno)); else if (err != V2_DQBLKSIZE) memset(buf + err, 0, V2_DQBLKSIZE - err); } @@ -286,7 +286,7 @@ lseek(h->qh_fd, blk << V2_DQBLKSIZE_BITS, SEEK_SET); err = write(h->qh_fd, buf, V2_DQBLKSIZE); if (err < 0 && errno != ENOSPC) - die(2, _("Can't write block (%u): %s\n"), blk, strerror(errno)); + die(2, _("Cannot write block (%u): %s\n"), blk, strerror(errno)); if (err != V2_DQBLKSIZE) return -ENOSPC; return 0; @@ -309,7 +309,7 @@ memset(buf, 0, V2_DQBLKSIZE); if (write_blk(h, info->dqi_blocks, buf) < 0) { /* Assure block allocation... */ freedqbuf(buf); - errstr(_("Can't allocate new quota block (out of disk space).\n")); + errstr(_("Cannot allocate new quota block (out of disk space).\n")); return -ENOSPC; } blk = info->dqi_blocks++; @@ -474,7 +474,7 @@ int tmp = V2_DQTREEOFF; if (do_insert_tree(h, dquot, &tmp, 0) < 0) - die(2, _("Can't write quota (id %u): %s\n"), (uint) dquot->dq_id, strerror(errno)); + die(2, _("Cannot write quota (id %u): %s\n"), (uint) dquot->dq_id, strerror(errno)); } /* Write dquot to file */ @@ -659,7 +659,7 @@ if (ret != sizeof(struct v2_disk_dqblk)) { if (ret > 0) errno = EIO; - die(2, _("Can't read quota structure for id %u: %s\n"), dquot->dq_id, + die(2, _("Cannot read quota structure for id %u: %s\n"), dquot->dq_id, strerror(errno)); } v2_disk2memdqblk(&dquot->dq_dqb, &ddquot); @@ -803,7 +803,7 @@ if (QIO_ENABLED(h)) /* Kernel uses same file? */ if (quotactl(QCMD((kernel_iface == IFACE_GENERIC) ? Q_SYNC : Q_6_5_SYNC, h->qh_type), h->qh_quotadev, 0, NULL) < 0) - die(4, _("Can't sync quotas on device %s: %s\n"), h->qh_quotadev, + die(4, _("Cannot sync quotas on device %s: %s\n"), h->qh_quotadev, strerror(errno)); lseek(h->qh_fd, V2_DQINFOOFF, SEEK_SET); if (read(h->qh_fd, &ddqinfo, sizeof(ddqinfo)) != sizeof(ddqinfo)) { --- quota-3.13.orig/quotaon.8 +++ quota-3.13/quotaon.8 @@ -80,7 +80,17 @@ .SH OPTIONS .SS quotaon .TP -.B \-a +.B -F, --format=\f2format-name\f1 +Report quota for specified format (ie. don't perform format autodetection). +Possible format names are: +.B vfsold +(version 1 quota), +.B vfsv0 +(version 2 quota), +.B xfs +(quota on XFS filesystem) +.TP +.B -a, --all All automatically mounted (no .B noauto option) non-NFS filesystems in @@ -88,26 +98,26 @@ with quotas will have their quotas turned on. This is normally used at boot time to enable quotas. .TP -.B \-v +.B -v, --verbose Display a message for each filesystem where quotas are turned on. .TP -.B \-u +.B -u, --user Manipulate user quotas. This is the default. .TP -.B \-g +.B -g, --group Manipulate group quotas. .TP -.B \-p +.B -p, --print-state Instead of turning quotas on just print state of quotas (ie. whether. quota is on or off) .TP -.B \-f +.B -f, --off Make .B quotaon behave like being called as .BR quotaoff . .SS quotaoff .TP -.B \-F \f2format-name\f1 +.B -F, --format=\f2format-name\f1 Report quota for specified format (ie. don't perform format autodetection). Possible format names are: .B vfsold @@ -117,31 +127,31 @@ .B xfs (quota on XFS filesystem) .TP -.B \-a +.B -a, --all Force all filesystems in .B /etc/fstab to have their quotas disabled. .TP -.B \-v +.B -v, --verbose Display a message for each filesystem affected. .TP -.B \-u +.B -u, --user Manipulate user quotas. This is the default. .TP -.B \-g +.B -g, --group Manipulate group quotas. .TP -.B \-p +.B -p, --print-state Instead of turning quotas off just print state of quotas (ie. whether. quota is on or off) .TP -.B \-x delete +.B -x, --xfs-command delete Free up the space used to hold quota information (maintained internally) within XFS. This option is only applicable to XFS, and is silently ignored for other filesystem types. It can only be used on a filesystem with quota previously turned off. .TP -.B \-x enforce +.B -x, --xfs-command enforce Switch off limit enforcement for XFS filesystems (perform quota accounting only). This option is only applicable to XFS, and is silently --- quota-3.13.orig/quotaon.c +++ quota-3.13/quotaon.c @@ -34,7 +34,7 @@ #ident "$Copyright: (c) 1980, 1990 Regents of the University of California $" #ident "$Copyright: All rights reserved. $" -#ident "$Id: quotaon.c,v 1.20 2005/06/01 07:20:50 jkar8572 Exp $" +#ident "$Id: quotaon.c,v 1.22 2006/05/13 01:05:24 jkar8572 Exp $" /* * Turn quota on/off for a filesystem. @@ -64,15 +64,39 @@ static void usage(void) { - errstr(_("Usage:\n\t%s [-guvp] [-F quotaformat] [-x state] -a\n\t%s [-guvp] [-F quotaformat] [-x state] filesys ...\n"), progname, progname); + errstr(_("Usage:\n\t%s [-guvp] [-F quotaformat] [-x state] -a\n\ +\t%s [-guvp] [-F quotaformat] [-x state] filesys ...\n\n\ +-a, --all turn quotas on for all filesystems\n\ +-f, --off turn quotas off\n\ +-u, --user operate on user quotas\n\ +-g, --group operate on group quotas\n\ +-p, --print-state print whether quotas are on or off\n\ +-x, --xfs-command=cmd perform XFS quota command\n\ +-F, --format=formatname operate on specific quota format\n\ +-v, --verbose print more messages\n\ +-h, --help display this help text and exit\n\ +-V, --version display version information and exit\n"), progname, progname); exit(1); } static void parse_options(int argcnt, char **argstr) { int c; + struct option long_opts[] = { + { "all", 0, NULL, 'a' }, + { "off", 0, NULL, 'f' }, + { "verbose", 0, NULL, 'v' }, + { "user", 0, NULL, 'u' }, + { "group", 0, NULL, 'g' }, + { "print-state", 0, NULL, 'p' }, + { "xfs-command", 1, NULL, 'x' }, + { "format", 1, NULL, 'F' }, + { "version", 0, NULL, 'V' }, + { "help", 0, NULL, 'h' }, + { NULL, 0, NULL, 0 } + }; - while ((c = getopt(argcnt, argstr, "afvugpx:VF:")) != -1) { + while ((c = getopt_long(argcnt, argstr, "afvugpx:VF:h", long_opts, NULL)) != -1) { switch (c) { case 'a': flags |= FL_ALL; @@ -102,6 +126,7 @@ case 'V': version(); exit(0); + case 'h': default: usage(); } @@ -111,7 +136,7 @@ usage(); } if (fmt == QF_RPC) { - fputs(_("Can't turn on/off quotas via RPC.\n"), stderr); + fputs(_("Cannot turn on/off quotas via RPC.\n"), stderr); exit(1); } if (!(flags & (FL_USER | FL_GROUP))) @@ -139,7 +164,7 @@ if (!strcmp(mnt->mnt_type, MNTTYPE_XFS)) { /* XFS filesystem has special handling... */ if (!(kernel_formats & (1 << QF_XFS))) { - errstr(_("Can't change state of XFS quota. It's not compiled in kernel.\n")); + errstr(_("Cannot change state of XFS quota. It's not compiled in kernel.\n")); return 1; } if (kernel_formats & (1 << QF_XFS) && @@ -216,7 +241,7 @@ } if (quotactl(qcmd, quotadev, kqf, (void *)quotafile) < 0) { if (errno == ENOENT) - errstr(_("can't find %s on %s [%s]\n"), quotafile, quotadev, quotadir); + errstr(_("cannot find %s on %s [%s]\n"), quotafile, quotadev, quotadir); else errstr(_("using %s on %s [%s]: %s\n"), quotafile, quotadev, quotadir, strerror(errno)); if (errno == EINVAL) @@ -326,7 +351,7 @@ while ((mnt = get_next_mount())) { if (nfs_fstype(mnt->mnt_type)) { if (!(flags & FL_ALL)) - fprintf(stderr, "%s: Quota can't be turned on on NFS filesystem\n", mnt->mnt_fsname); + fprintf(stderr, "%s: Quota cannot be turned on on NFS filesystem\n", mnt->mnt_fsname); continue; } --- quota-3.13.orig/quotaops.c +++ quota-3.13/quotaops.c @@ -34,7 +34,7 @@ #ident "$Copyright: (c) 1980, 1990 Regents of the University of California. $" #ident "$Copyright: All rights reserved. $" -#ident "$Id: quotaops.c,v 1.16 2005/03/31 11:48:02 jkar8572 Exp $" +#ident "$Id: quotaops.c,v 1.19 2006/05/13 01:05:24 jkar8572 Exp $" #include #include @@ -118,7 +118,7 @@ if (ngroups > NGROUPS) { gidsetp = malloc(ngroups * sizeof(gid_t)); if (!gidsetp) { - errstr(_("%s: gid set allocation (%d): %s\n"), name, ngroups, strerror(errno)); + errstr(_("gid set allocation (%d): %s\n"), ngroups, strerror(errno)); return (struct dquot *)NULL; } } @@ -128,7 +128,7 @@ if (ngroups < 0) { if (gidsetp != gidset) free(gidsetp); - errstr(_("%s: error while trying getgroups(): %s\n"), name, strerror(errno)); + errstr(_("error while trying getgroups(): %s\n"), strerror(errno)); return (struct dquot *)NULL; } @@ -152,8 +152,8 @@ if (!(q = handles[i]->qh_ops->read_dquot(handles[i], id))) { /* If rpc.rquotad is not running filesystem might be just without quotas... */ if (errno != ENOENT && (errno != ECONNREFUSED || !quiet)) - errstr(_("%s: error while getting quota from %s for %u: %s\n"), - name, handles[i]->qh_quotadev, id, strerror(errno)); + errstr(_("error while getting quota from %s for %u: %s\n"), + handles[i]->qh_quotadev, id, strerror(errno)); continue; } if (qhead == NULL) @@ -176,7 +176,7 @@ for (q = qlist; q; q = q->dq_next) { if (q->dq_h->qh_ops->commit_dquot(q, flags) == -1) { - errstr(_("Can't write quota for %u on %s: %s\n"), + errstr(_("Cannot write quota for %u on %s: %s\n"), q->dq_id, q->dq_h->qh_quotadev, strerror(errno)); ret = -1; continue; @@ -201,7 +201,7 @@ sigaddset(&nmask, SIGHUP); sigprocmask(SIG_SETMASK, &nmask, &omask); if ((pid = fork()) < 0) { - errstr("Can't fork(): %s\n", strerror(errno)); + errstr("Cannot fork(): %s\n", strerror(errno)); return -1; } if (pid == 0) { @@ -233,7 +233,7 @@ edpars[i++] = tmpfile; edpars[i] = NULL; execvp(edpars[0], edpars); - die(1, _("Can't exec %s\n"), ed); + die(1, _("Cannot exec %s\n"), ed); } waitpid(pid, &stat, 0); sigprocmask(SIG_SETMASK, &omask, NULL); @@ -252,11 +252,11 @@ ftruncate(outfd, 0); lseek(outfd, 0, SEEK_SET); if (!(fd = fdopen(dup(outfd), "w"))) - die(1, _("Can't duplicate descriptor of file to write to: %s\n"), strerror(errno)); + die(1, _("Cannot duplicate descriptor of file to write to: %s\n"), strerror(errno)); #if defined(ALT_FORMAT) fprintf(fd, _("Disk quotas for %s %s (%cid %d):\n"), - type2name(quotatype), name, *type2name(quotatype), name2id(name, quotatype, NULL)); + type2name(quotatype), name, *type2name(quotatype), qlist->dq_id); fprintf(fd, _(" Filesystem blocks soft hard inodes soft hard\n")); @@ -330,7 +330,7 @@ lseek(infd, 0, SEEK_SET); if (!(fd = fdopen(dup(infd), "r"))) - die(1, _("Can't duplicate descriptor of temp file: %s\n"), strerror(errno)); + die(1, _("Cannot duplicate descriptor of temp file: %s\n"), strerror(errno)); #if defined(ALT_FORMAT) /* @@ -437,10 +437,10 @@ ftruncate(outfd, 0); lseek(outfd, 0, SEEK_SET); if (!(fd = fdopen(dup(outfd), "w"))) - die(1, _("Can't duplicate descriptor of file to write to: %s\n"), strerror(errno)); + die(1, _("Cannot duplicate descriptor of file to write to: %s\n"), strerror(errno)); fprintf(fd, _("Times to enforce softlimit for %s %s (%cid %d):\n"), - type2name(quotatype), name, *type2name(quotatype), name2id(name, quotatype, NULL)); + type2name(quotatype), name, *type2name(quotatype), qlist->dq_id); fprintf(fd, _("Time units may be: days, hours, minutes, or seconds\n")); fprintf(fd, _(" Filesystem block grace inode grace\n")); @@ -479,7 +479,7 @@ lseek(infd, 0, SEEK_SET); if (!(fd = fdopen(dup(infd), "r"))) - die(1, _("Can't duplicate descriptor of temp file: %s\n"), strerror(errno)); + die(1, _("Cannot duplicate descriptor of temp file: %s\n"), strerror(errno)); /* * Discard title lines, then read lines to process. @@ -539,7 +539,7 @@ ftruncate(outfd, 0); lseek(outfd, 0, SEEK_SET); if ((fd = fdopen(dup(outfd), "w")) == NULL) - die(1, _("Can't duplicate descriptor of file to edit: %s\n"), strerror(errno)); + die(1, _("Cannot duplicate descriptor of file to edit: %s\n"), strerror(errno)); #if defined(ALT_FORMAT) fprintf(fd, _("Grace period before enforcing soft limits for %ss:\n"), @@ -587,7 +587,7 @@ return 0; lseek(infd, 0, SEEK_SET); if (!(fd = fdopen(dup(infd), "r"))) { - errstr(_("Can't reopen temp file: %s\n"), + errstr(_("Cannot reopen temp file: %s\n"), strerror(errno)); return -1; } --- quota-3.13.orig/quotasys.h +++ quota-3.13/quotasys.h @@ -19,9 +19,8 @@ #define TF_ROUND 0x1 /* Should be printed time rounded? */ /* Flags for IO initialization */ -#define IOI_LOCALONLY 0x1 /* Operate only on local quota */ -#define IOI_READONLY 0x2 /* Only readonly access */ -#define IOI_OPENFILE 0x4 /* Open file even if kernel has quotas turned on */ +#define IOI_READONLY 0x1 /* Only readonly access */ +#define IOI_OPENFILE 0x2 /* Open file even if kernel has quotas turned on */ #define KERN_KNOWN_QUOTA_VERSION (6*10000 + 5*100 + 1) @@ -46,13 +45,13 @@ char *type2name(int); /* Convert username to uid */ -uid_t user2uid(char *, int *err); +uid_t user2uid(char *, int flag, int *err); /* Convert groupname to gid */ -gid_t group2gid(char *, int *err); +gid_t group2gid(char *, int flag, int *err); /* Convert user/groupname to id */ -int name2id(char *name, int qtype, int *err); +int name2id(char *name, int qtype, int flag, int *err); /* Convert uid to username */ int uid2user(uid_t, char *); @@ -130,6 +129,7 @@ #define MS_NO_MNTPOINT 0x01 /* Specified directory needn't be mountpoint */ #define MS_NO_AUTOFS 0x02 /* Ignore autofs mountpoints */ #define MS_QUIET 0x04 /* Be quiet with error reporting */ +#define MS_LOCALONLY 0x08 /* Ignore nfs mountpoints */ /* Initialize mountpoints scan */ int init_mounts_scan(int dcnt, char **dirs, int flags); --- quota-3.13.orig/repquota.8 +++ quota-3.13/repquota.8 @@ -68,37 +68,37 @@ options. .SH OPTIONS .TP -.B \-a +.B -a, --all Report on all filesystems indicated in .B /etc/mtab to be read-write with quotas. .TP -.B \-v +.B -v, --verbose Report all quotas, even if there is no usage. Be also more verbose about quotafile information. .TP -.B \-c +.B -c, --batch-translation Cache entries to report and translate uids/gids to names in big chunks by scanning all users (default). This is good (fast) behaviour when using /etc/passwd file. .TP -.B \-C +.B -C, --no-batch-translation Translate individual entries. This is faster when you have users stored in database. .TP -.B \-t +.B -t, --truncate-names Truncate user/group names longer than 9 characters. This results in nicer output when there are such names. .TP -.B \-n +.B -n, --no-names Don't resolve UIDs/GIDs to names. This can speedup printing a lot. .TP -.B \-s +.B -s, --human-readable Try to report used space, number of used inodes and limits in more appropriate units than the default ones. .TP -.B \-i +.B -i, --no-autofs Ignore mountpoints mounted by automounter. .TP -.B \-F \f2format-name\f1 +.B \-F, --format=\f2format-name\f1 Report quota for specified format (ie. don't perform format autodetection). Possible format names are: .B vfsold @@ -108,10 +108,10 @@ .B xfs (quota on XFS filesystem) .TP -.B \-g +.B -g, --group Report quotas for groups. .TP -.B \-u +.B -u, --user Report quotas for users. This is the default. .LP Only the super-user may view quotas which are not their own. --- quota-3.13.orig/quotastats.c +++ quota-3.13/quotastats.c @@ -10,7 +10,7 @@ * * Author: Marco van Wieringen * - * Version: $Id: quotastats.c,v 1.10 2002/06/16 19:00:46 jkar8572 Exp $ + * Version: $Id: quotastats.c,v 1.11 2005/11/21 22:30:23 jkar8572 Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -45,7 +45,7 @@ sstrncat(namebuf, name, PATH_MAX); if (!(f = fopen(namebuf, "r"))) { - errstr(_("Can't read stat file %s: %s\n"), namebuf, strerror(errno)); + errstr(_("Cannot read stat file %s: %s\n"), namebuf, strerror(errno)); return -1; } fscanf(f, "%d", &ret); --- quota-3.13.orig/quotasys.c +++ quota-3.13/quotasys.c @@ -89,7 +89,7 @@ /* * Convert name to uid */ -uid_t user2uid(char *name, int *err) +uid_t user2uid(char *name, int flag, int *err) { struct passwd *entry; uid_t ret; @@ -97,12 +97,14 @@ if (err) *err = 0; - ret = strtol(name, &errch, 0); - if (!*errch) /* Is name number - we got directly uid? */ - return ret; + if (!flag) { + ret = strtoul(name, &errch, 0); + if (!*errch) /* Is name number - we got directly uid? */ + return ret; + } if (!(entry = getpwnam(name))) { if (!err) { - errstr(_("User %s doesn't exist.\n"), name); + errstr(_("user %s does not exist.\n"), name); exit(1); } else { @@ -116,7 +118,7 @@ /* * Convert group name to gid */ -gid_t group2gid(char *name, int *err) +gid_t group2gid(char *name, int flag, int *err) { struct group *entry; gid_t ret; @@ -124,12 +126,14 @@ if (err) *err = 0; - ret = strtol(name, &errch, 0); - if (!*errch) /* Is name number - we got directly gid? */ - return ret; + if (!flag) { + ret = strtoul(name, &errch, 0); + if (!*errch) /* Is name number - we got directly gid? */ + return ret; + } if (!(entry = getgrnam(name))) { if (!err) { - errstr(_("Group %s doesn't exist.\n"), name); + errstr(_("group %s does not exist.\n"), name); exit(1); } else { @@ -143,12 +147,12 @@ /* * Convert name to id */ -int name2id(char *name, int qtype, int *err) +int name2id(char *name, int qtype, int flag, int *err) { if (qtype == USRQUOTA) - return user2uid(name, err); + return user2uid(name, flag, err); else - return group2gid(name, err); + return group2gid(name, flag, err); } /* @@ -469,7 +473,7 @@ if (stat(name, &st) < 0) { if (errno != ENOENT) - errstr(_("Can't stat quota file %s: %s\n"), name, strerror(errno)); + errstr(_("Cannot stat quota file %s: %s\n"), name, strerror(errno)); return 0; } return 1; @@ -485,7 +489,7 @@ close(fd); } else if (errno != ENOENT && errno != EPERM) - errstr(_("Can't open quotafile %s: %s\n"), name, strerror(errno)); + errstr(_("Cannot open quotafile %s: %s\n"), name, strerror(errno)); return ret; } } @@ -571,7 +575,7 @@ } if (init_mounts_scan(count, mntpoints, mntflags) < 0) - die(2, _("Can't initialize mountpoint scan.\n")); + die(2, _("Cannot initialize mountpoint scan.\n")); while ((mnt = get_next_mount())) { if (!nfs_fstype(mnt->mnt_type)) { /* No NFS? */ add_entry: @@ -583,7 +587,7 @@ continue; gotmnt++; } - else if (!(ioflags & IOI_LOCALONLY) && (fmt == -1 || fmt == QF_RPC)) { /* Use NFS? */ + else if (fmt == -1 || fmt == QF_RPC) { /* Use NFS? */ #ifdef RPC goto add_entry; #endif @@ -663,10 +667,10 @@ sig.sa_handler = SIG_IGN; sig.sa_sigaction = NULL; if (sigemptyset(&sig.sa_mask) < 0) - die(2, _("Can't create set for sigaction(): %s\n"), strerror(errno)); + die(2, _("Cannot create set for sigaction(): %s\n"), strerror(errno)); sig.sa_flags = 0; if (sigaction(SIGSEGV, &sig, &oldsig) < 0) - die(2, _("Can't set signal handler: %s\n"), strerror(errno)); + die(2, _("Cannot set signal handler: %s\n"), strerror(errno)); kernel_formats = 0; if (!stat("/proc/fs/xfs/stat", &st)) @@ -713,7 +717,7 @@ } } if (sigaction(SIGSEGV, &oldsig, NULL) < 0) - die(2, _("Can't reset signal handler: %s\n"), strerror(errno)); + die(2, _("Cannot reset signal handler: %s\n"), strerror(errno)); } /* Check whether old quota is turned on on given device */ @@ -822,12 +826,12 @@ if (!(mntf = setmntent(_PATH_MOUNTED, "r"))) { if (errno != ENOENT) { - errstr(_("Can't open %s: %s\n"), _PATH_MOUNTED, strerror(errno)); + errstr(_("Cannot open %s: %s\n"), _PATH_MOUNTED, strerror(errno)); return -1; } else /* Fallback on fstab when mtab not available */ if (!(mntf = setmntent(_PATH_MNTTAB, "r"))) { - errstr(_("Can't open %s: %s\n"), _PATH_MNTTAB, strerror(errno)); + errstr(_("Cannot open %s: %s\n"), _PATH_MNTTAB, strerror(errno)); return -1; } } @@ -838,7 +842,7 @@ const char *devname; if (!(devname = get_device_name(mnt->mnt_fsname))) { - errstr(_("Can't get device name for %s\n"), mnt->mnt_fsname); + errstr(_("Cannot get device name for %s\n"), mnt->mnt_fsname); continue; } @@ -862,6 +866,11 @@ continue; } + if (flags & MS_LOCALONLY && nfs_fstype(mnt->mnt_type)) { + free((char *)devname); + continue; + } + /* Further we are not interested in mountpoints without quotas and we don't want to touch them */ if (!hasquota(mnt, USRQUOTA) && !hasquota(mnt, GRPQUOTA)) { @@ -870,13 +879,13 @@ } if (!realpath(mnt->mnt_dir, mntpointbuf)) { - errstr(_("Can't resolve mountpoint path %s: %s\n"), mnt->mnt_dir, strerror(errno)); + errstr(_("Cannot resolve mountpoint path %s: %s\n"), mnt->mnt_dir, strerror(errno)); free((char *)devname); continue; } if (statfs(mntpointbuf, &fsstat) != 0) { - errstr(_("Can't statfs() %s: %s\n"), mntpointbuf, strerror(errno)); + errstr(_("Cannot statfs() %s: %s\n"), mntpointbuf, strerror(errno)); free((char *)devname); continue; } @@ -888,7 +897,7 @@ if (!nfs_fstype(mnt->mnt_type)) { if (stat(devname, &st) < 0) { /* Can't stat mounted device? */ - errstr(_("Can't stat() mounted device %s: %s\n"), devname, strerror(errno)); + errstr(_("Cannot stat() mounted device %s: %s\n"), devname, strerror(errno)); free((char *)devname); continue; } @@ -909,7 +918,7 @@ int i; if (!(opt = strchr(opt, '='))) { - errstr(_("Can't find device of loopback mount in options for %s. Skipping.\n"), devname); + errstr(_("Cannot find device of loopback mount in options for %s. Skipping.\n"), devname); free((char *)devname); continue; } @@ -918,12 +927,12 @@ loopdev[i] = *opt; loopdev[i] = 0; if (stat(loopdev, &st) < 0) { /* Can't stat loopback device? */ - errstr(_("Can't stat() loopback device %s: %s\n"), opt, strerror(errno)); + errstr(_("Cannot stat() loopback device %s: %s\n"), opt, strerror(errno)); free((char *)devname); continue; } if (!S_ISBLK(st.st_mode)) { - errstr(_("Loopback device %s isn't block device!\n"), opt); + errstr(_("Loopback device %s is not block device!\n"), opt); free((char *)devname); continue; } @@ -941,7 +950,7 @@ /* Cope with network filesystems or new mountpoint */ if (nfs_fstype(mnt->mnt_type) || i == mnt_entries_cnt) { if (stat(mnt->mnt_dir, &st) < 0) { /* Can't stat mountpoint? We have better ignore it... */ - errstr(_("Can't stat() mountpoint %s: %s\n"), mnt->mnt_dir, strerror(errno)); + errstr(_("Cannot stat() mountpoint %s: %s\n"), mnt->mnt_dir, strerror(errno)); free((char *)devname); continue; } @@ -1001,11 +1010,11 @@ char *devname = (char *)get_device_name(dirs[i]); if (!devname) { - errstr(_("Can't find a device with %s.\nSkipping...\n"), dirs[i]); + errstr(_("Cannot find a device with %s.\nSkipping...\n"), dirs[i]); continue; } if (stat(devname, &st) < 0) { - errstr(_("Can't stat() a mountpoint with %s: %s\nSkipping...\n"), dirs[i], strerror(errno)); + errstr(_("Cannot stat() a mountpoint with %s: %s\nSkipping...\n"), dirs[i], strerror(errno)); free(devname); continue; } @@ -1013,7 +1022,7 @@ } else if (stat(dirs[i], &st) < 0) { - errstr(_("Can't stat() given mountpoint %s: %s\nSkipping...\n"), dirs[i], strerror(errno)); + errstr(_("Cannot stat() given mountpoint %s: %s\nSkipping...\n"), dirs[i], strerror(errno)); continue; } check_dirs[check_dirs_cnt].sd_dir = S_ISDIR(st.st_mode); @@ -1023,13 +1032,13 @@ /* Return st of mountpoint of dir in st.. */ if (flags & MS_NO_MNTPOINT && !(realmnt = find_dir_mntpoint(&st))) { if (!(flags & MS_QUIET)) - errstr(_("Can't find a filesystem mountpoint for directory %s\n"), dirs[i]); + errstr(_("Cannot find a filesystem mountpoint for directory %s\n"), dirs[i]); continue; } check_dirs[check_dirs_cnt].sd_dev = st.st_dev; check_dirs[check_dirs_cnt].sd_ino = st.st_ino; if (!realpath(realmnt, mntpointbuf)) { - errstr(_("Can't resolve path %s: %s\n"), realmnt, strerror(errno)); + errstr(_("Cannot resolve path %s: %s\n"), realmnt, strerror(errno)); continue; } } @@ -1040,7 +1049,7 @@ for (mentry = 0; mentry < mnt_entries_cnt && mnt_entries[mentry].me_dev != st.st_rdev; mentry++); if (mentry == mnt_entries_cnt) { if (!(flags & MS_QUIET)) - errstr(_("Can't find mountpoint for device %s\n"), dirs[i]); + errstr(_("Cannot find mountpoint for device %s\n"), dirs[i]); continue; } sstrncpy(mntpointbuf, mnt_entries[mentry].me_dir, PATH_MAX-1); --- quota-3.13.orig/repquota.c +++ quota-3.13/repquota.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "pot.h" #include "common.h" @@ -43,7 +44,19 @@ static void usage(void) { - errstr(_("Utility for reporting quotas.\nUsage:\n%s [-vugsi] [-c|C] [-t|n] [-F quotaformat] (-a | mntpoint)\n"), progname); + errstr(_("Utility for reporting quotas.\nUsage:\n%s [-vugsi] [-c|C] [-t|n] [-F quotaformat] (-a | mntpoint)\n\n\ +-v, --verbose display also users/groups without any usage\n\ +-u, --user display information about users\n\ +-g, --group display information about groups\n\ +-s, --human-readable show numbers in human friendly units (MB, GB, ...)\n\ +-t, --truncate-names truncate names to 8 characters\n\ +-n, --no-names do not translate uid/gid to name\n\ +-i, --no-autofs avoid autofs mountpoints\n\ +-c, --batch-translation translate big number of ids at once\n\ +-C, --no-batch-translation translate ids one by one\n\ +-F, --format=formatname report information for specific format\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); exit(1); } @@ -52,8 +65,24 @@ { int ret; int cache_specified = 0; + struct option long_opts[] = { + { "version", 0, NULL, 'V' }, + { "all", 0, NULL, 'a' }, + { "verbose", 0, NULL, 'v' }, + { "user", 0, NULL, 'u' }, + { "group", 0, NULL, 'g' }, + { "help", 0, NULL, 'h' }, + { "truncate-names", 0, NULL, 't' }, + { "human-readable", 0, NULL, 's' }, + { "no-names", 0, NULL, 'n' }, + { "cache", 0, NULL, 'c' }, + { "no-cache", 0, NULL, 'C' }, + { "no-autofs", 0, NULL, 'i' }, + { "format", 1, NULL, 'F' }, + { NULL, 0, NULL, 0 } + }; - while ((ret = getopt(argcnt, argstr, "VavughtsncCiF:")) != -1) { + while ((ret = getopt_long(argcnt, argstr, "VavughtsncCiF:", long_opts, NULL)) != -1) { switch (ret) { case '?': case 'h': @@ -105,7 +134,7 @@ usage(); } if (fmt == QF_RPC) { - fputs(_("Repquota can't report through RPC calls.\n"), stderr); + fputs(_("Repquota cannot report through RPC calls.\n"), stderr); exit(1); } if (flags & FL_NONAME && flags & FL_TRUNCNAMES) { @@ -262,9 +291,9 @@ int i; if (flags & FL_ALL) - handles = create_handle_list(0, NULL, type, fmt, IOI_LOCALONLY | IOI_READONLY | IOI_OPENFILE, (flags & FL_NOAUTOFS ? MS_NO_AUTOFS : 0)); + handles = create_handle_list(0, NULL, type, fmt, IOI_READONLY | IOI_OPENFILE, MS_LOCALONLY | (flags & FL_NOAUTOFS ? MS_NO_AUTOFS : 0)); else - handles = create_handle_list(mntcnt, mnt, type, fmt, IOI_LOCALONLY | IOI_READONLY | IOI_OPENFILE, (flags & FL_NOAUTOFS ? MS_NO_AUTOFS : 0)); + handles = create_handle_list(mntcnt, mnt, type, fmt, IOI_READONLY | IOI_OPENFILE, MS_LOCALONLY | (flags & FL_NOAUTOFS ? MS_NO_AUTOFS : 0)); for (i = 0; handles[i]; i++) report_it(handles[i], type); dispose_handle_list(handles); --- quota-3.13.orig/setquota.8 +++ quota-3.13/setquota.8 @@ -109,14 +109,14 @@ is a command line quota editor. The filesystem, user/group name and new quotas for this filesystem can be specified on the command line. Note that if a number is -given in the place of a user/group name it is threated as an UID/GID. +given in the place of a user/group name it is treated as an UID/GID. .TP -.B -r +.B -r, --remote Edit also remote quota use rpc.rquotad on remote server to set quota. This option is available only if quota tools were compiled with enabled support for setting quotas over RPC. .TP -.B -F \f2quotaformat\f1 +.B -F, --format=\f2quotaformat\f1 Perform setting for specified format (ie. don't perform format autodetection). Possible format names are: .B vfsold @@ -128,37 +128,37 @@ .B xfs (quota on XFS filesystem) .TP -.B -u +.B -u, --user Set user quotas for named user. This is the default. .TP -.B -g +.B -g, --group Set group quotas for named group. .TP -.B -p \f2protoname\f1 +.B -p, --prototype=\f2protoname\f1 Use quota settings of user or group .I protoname to set the quota for the named user or group. .TP -.B -b +.B -b, --batch Read information to set from stdin (input format is .I name block-softlimit block-hardlimit inode-softlimit inode-hardlimit ). .TP -.B -t +.B -t, --edit-period Set grace times for users/groups. Times .B block-grace and .B inode-grace are specified in seconds. .TP -.B -T +.B -T, --edit-times Alter times for individual user/group when softlimit is enforced. Times .B block-grace and .B inode-grace are specified in seconds or can be string 'unset'. .TP -.B -a +.B -a, --all Go through all filesystems with quota in .B /etc/mtab and perform setting. --- quota-3.13.orig/warnquota.8 +++ quota-3.13/warnquota.8 @@ -25,7 +25,7 @@ It is typically run via .BR cron (8). .TP -.B -F \f2quotaformat\f1 +.B -F, --format=\f2quotaformat\f1 Perform setting for specified format (ie. don't perform format autodetection). Possible format names are: .B vfsold @@ -37,43 +37,43 @@ .B xfs (quota on XFS filesystem) .TP -.B -q \f2quotatab\f1 +.B -q, --quota-tab=\f2quotatab\f1 Use .I quotatab instead of .I /etc/quotatab as file with device description strings (see example file for syntax). .TP -.B -c \f2configfile\f1 +.B -c, --config=\f2configfile\f1 Use .I configfile instead of .I /etc/warnquota.conf as configuration file (see example file for syntax). .TP -.B -a \f2adminsfile\f1 +.B -a, --admins-file=\f2adminsfile\f1 Use .I adminsfile instead of .I /etc/quotagrpadmins as a file with administrators of the groups. .TP -.B -u +.B -u, --user check whether users are not exceeding quotas (default). .TP -.B -g +.B -g, --group check whether groups are not exceeding quotas. If group is exceeding quota a mail is sent to the user specified in /etc/quotagrpadmins. .TP -.B -s +.B -s, --human-readable Try to report used space, number of used inodes and limits in more appropriate units than the default ones. .TP -.B \-i +.B -i, --no-autofs ignore mountpoints mounted by automounter. .TP -.B -d -don't attach quota report in email. +.B -d, --no-details +do not attach quota report in email. .SH FILES .PD 0 .TP 20 --- quota-3.13.orig/setquota.c +++ quota-3.13/setquota.c @@ -29,6 +29,7 @@ #define FL_GRACE 32 #define FL_INDIVIDUAL_GRACE 64 #define FL_BATCH 128 +#define FL_NUMNAMES 256 int flags, fmt = -1; char **mnt; @@ -41,22 +42,32 @@ static void usage(void) { #if defined(RPC_SETQUOTA) - errstr(_("Usage:\n" - " setquota [-u|-g] [-r] [-F quotaformat] \n" - "\t -a|...\n" - " setquota [-u|-g] [-r] [-F quotaformat] <-p protouser|protogroup> -a|...\n" - " setquota [-u|-g] [-r] [-F quotaformat] -b -a|...\n" - " setquota [-u|-g] [-F quotaformat] -t -a|...\n" - " setquota [-u|-g] [-F quotaformat] -T -a|...\n")); + char *ropt = "[-r] "; #else - errstr(_("Usage:\n" - " setquota [-u|-g] [-F quotaformat] \n" - "\t -a|...\n" - " setquota [-u|-g] [-F quotaformat] <-p protouser|protogroup> -a|...\n" - " setquota [-u|-g] [-F quotaformat] -b -a|...\n" - " setquota [-u|-g] [-F quotaformat] -t -a|...\n" - " setquota [-u|-g] [-F quotaformat] -T -a|...\n")); + char *ropt = ""; #endif + errstr(_("Usage:\n\ + setquota [-u|-g] %1$s[-F quotaformat] \n\ +\t -a|...\n\ + setquota [-u|-g] %1$s[-F quotaformat] <-p protouser|protogroup> -a|...\n\ + setquota [-u|-g] %1$s[-F quotaformat] -b -a|...\n\ + setquota [-u|-g] [-F quotaformat] -t -a|...\n\ + setquota [-u|-g] [-F quotaformat] -T -a|...\n\n\ +-u, --user set limits for user\n\ +-g, --group set limits for group\n\ +-a, --all set limits for all filesystems\n\ + --always-resolve always try to resolve name, even if is\n\ + composed only of digits\n\ +-F, --format=formatname operate on specific quota format\n\ +-p, --prototype=protoname copy limits from user/group\n\ +-b, --batch read limits from standard input\n"), ropt); +#if defined(RPC_SETQUOTA) + fputs(_("-r, --remote set remote quota (via RPC)\n"), stderr); +#endif + fputs(_("-t, --edit-period edit grace period\n\ +-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); exit(1); } @@ -91,12 +102,29 @@ char *protoname = NULL; #ifdef RPC_SETQUOTA - char *opts = "igp:urVF:taTb"; + char *opts = "gp:urVF:taTb"; #else - char *opts = "igp:uVF:taTb"; + char *opts = "gp:uVF:taTb"; +#endif + struct option long_opts[] = { + { "user", 0, NULL, 'u' }, + { "group", 0, NULL, 'g' }, + { "prototype", 1, NULL, 'p' }, +#ifdef RPC_SETQUOTA + { "remote", 0, NULL, 'r' }, #endif + { "all", 0, NULL, 'a' }, + { "always-resolve", 0, NULL, 256}, + { "edit-period", 0, NULL, 't' }, + { "edit-times", 0, NULL, 'T' }, + { "batch", 0, NULL, 'b' }, + { "format", 1, NULL, 'F' }, + { "version", 0, NULL, 'V' }, + { "help", 0, NULL, 'h' }, + { NULL, 0, NULL, 0 } + }; - while ((ret = getopt(argcnt, argstr, opts)) != -1) { + while ((ret = getopt_long(argcnt, argstr, opts, long_opts, NULL)) != -1) { switch (ret) { case '?': case 'h': @@ -117,6 +145,9 @@ case 'a': flags |= FL_ALL; break; + case 256: + flags |= FL_NUMNAMES; + break; case 't': flags |= FL_GRACE; break; @@ -132,7 +163,7 @@ break; case 'V': version(); - break; + exit(0); } } if (flags & FL_USER && flags & FL_GROUP) { @@ -173,7 +204,7 @@ if (!(flags & (FL_USER | FL_GROUP))) flags |= FL_USER; if (!(flags & (FL_GRACE | FL_BATCH))) { - id = name2id(argstr[optind++], flag2type(flags), NULL); + id = name2id(argstr[optind++], flag2type(flags), !!(flags & FL_NUMNAMES), NULL); if (!(flags & (FL_GRACE | FL_INDIVIDUAL_GRACE | FL_PROTO))) { toset.dqb_bsoftlimit = parse_num(argstr[optind++], _("block softlimit")); toset.dqb_bhardlimit = parse_num(argstr[optind++], _("block hardlimit")); @@ -181,7 +212,7 @@ toset.dqb_ihardlimit = parse_num(argstr[optind++], _("inode hardlimit")); } else if (flags & FL_PROTO) - protoid = name2id(protoname, flag2type(flags), NULL); + protoid = name2id(protoname, flag2type(flags), !!(flags & FL_NUMNAMES), NULL); } if (flags & FL_GRACE) { toset.dqb_btime = parse_num(argstr[optind++], _("block grace time")); @@ -265,7 +296,7 @@ if (ret != 5) die(1, _("Cannot parse input line %d.\n"), line); ret = 0; - *id = name2id(name, flag2type(flags), &ret); + *id = name2id(name, flag2type(flags), !!(flags & FL_NUMNAMES), &ret); if (ret) errstr(_("Unable to get name '%s'.\n"), name); } while (ret); @@ -325,7 +356,7 @@ q->dq_dqb.dqb_itime = toset.dqb_itime; } if (putprivs(curprivs, COMMIT_TIMES) == -1) { - errstr(_("Can't write times for %s. Maybe kernel doesn't support such operation?\n"), type2name(flags & FL_USER ? USRQUOTA : GRPQUOTA)); + errstr(_("cannot write times for %s. Maybe kernel does not support such operation?\n"), type2name(flags & FL_USER ? USRQUOTA : GRPQUOTA)); ret = -1; } freeprivs(curprivs); @@ -344,9 +375,9 @@ init_kernel_interface(); if (flags & FL_ALL) - handles = create_handle_list(0, NULL, flag2type(flags), fmt, (flags & FL_RPC) ? 0 : IOI_LOCALONLY, 0); + handles = create_handle_list(0, NULL, flag2type(flags), fmt, 0, (flags & FL_RPC) ? 0 : MS_LOCALONLY); else - handles = create_handle_list(mntcnt, mnt, flag2type(flags), fmt, (flags & FL_RPC) ? 0 : IOI_LOCALONLY, 0); + handles = create_handle_list(mntcnt, mnt, flag2type(flags), fmt, 0, (flags & FL_RPC) ? 0 : MS_LOCALONLY); if (flags & FL_GRACE) ret = setgraces(handles); --- quota-3.13.orig/warnquota.conf +++ quota-3.13/warnquota.conf @@ -18,15 +18,17 @@ # Text in the beginning of the mail (if not specified, default text is used) # This way text can be split to more lines # Line breaks are done by '|' character -MESSAGE = Hello, I've noticed you use too much space\ - on my disk|Delete your files on following filesystems:| +# The expressions %i, %h, %d, and %% are substituted for user/group name, +# host name, domain name, and '%' respectively. For backward compatibility +# %s behaves as %i but is deprecated. +MESSAGE = Hello user %i, I've noticed you use too much space\ + on my disk in %h.%d.|Delete your files on the following filesystems:| # Text in the end of the mail (if not specified, default text using SUPPORT and PHONE # is created) -SIGNATURE = See you!| Your admin| +SIGNATURE = See you!| Your admin of %h| # Following text is used for mails about group exceeding quotas -# It should contain string %s exactly once - it will be substituted for a group name -GROUP_MESSAGE = Hello, a group '%s' you're member of use too much space.|\ -I chose you to do the cleanup.|Delete group files on following filesystems:| +GROUP_MESSAGE = Hello, a group '%i' you're member of use too much space at %h.|\ +I chose you to do the cleanup.|Delete group files on the following filesystems:| # Text in the end of the mail to the group (if not specified, default text using SUPPORT # and PHONE is created). GROUP_SIGNATURE = See you!| Your admin| --- quota-3.13.orig/warnquota.c +++ quota-3.13/warnquota.c @@ -10,7 +10,7 @@ * * Author: Marco van Wieringen * - * Version: $Id: warnquota.c,v 1.22 2005/06/24 14:04:23 jkar8572 Exp $ + * Version: $Id: warnquota.c,v 1.26 2006/05/13 01:05:24 jkar8572 Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -27,9 +27,11 @@ #include #include #include +#include +#include #include #include -#include +#include #ifdef USE_LDAP_MAIL_LOOKUP #include #endif @@ -90,7 +92,7 @@ }; #ifdef USE_LDAP_MAIL_LOOKUP -LDAP *ldapconn = NULL; +static LDAP *ldapconn = NULL; #endif struct configparams { @@ -137,14 +139,15 @@ char *adminname; }; -int qtab_i = 0, fmt = -1, flags; -char maildev[CNF_BUFFER]; -struct quota_handle *maildev_handle; -char *configfile = WARNQUOTA_CONF, *quotatabfile = QUOTATAB, *adminsfile = ADMINSFILE; +static int qtab_i = 0, fmt = -1, flags; +static char maildev[CNF_BUFFER]; +static struct quota_handle *maildev_handle; +static char *configfile = WARNQUOTA_CONF, *quotatabfile = QUOTATAB, *adminsfile = ADMINSFILE; char *progname; -quotatable_t *quotatable; -int adminscnt, adminsalloc; -struct adminstable *adminstable; +static char *hostname, *domainname; +static quotatable_t *quotatable; +static int adminscnt, adminsalloc; +static struct adminstable *adminstable; /* * Global pointers to list. @@ -184,14 +187,14 @@ #endif -struct offenderlist *add_offender(int type, int id, char *name) +static struct offenderlist *add_offender(int type, int id, char *name) { struct offenderlist *offender; char namebuf[MAXNAMELEN]; if (!name) { if (id2name(id, type, namebuf)) { - errstr(_("Can't get name for uid/gid %u.\n"), id); + errstr(_("Cannot get name for uid/gid %u.\n"), id); return NULL; } name = namebuf; @@ -206,7 +209,7 @@ return offender; } -void add_offence(struct dquot *dquot, char *name) +static void add_offence(struct dquot *dquot, char *name) { struct offenderlist *lptr; struct usage *usage; @@ -230,7 +233,7 @@ lptr->usage = usage; } -int deliverable(struct dquot *dquot) +static int deliverable(struct dquot *dquot) { time_t now; struct dquot *mdquot; @@ -259,7 +262,7 @@ return 1; } -int check_offence(struct dquot *dquot, char *name) +static int check_offence(struct dquot *dquot, char *name) { if ((dquot->dq_dqb.dqb_bsoftlimit && toqb(dquot->dq_dqb.dqb_curspace) >= dquot->dq_dqb.dqb_bsoftlimit) || (dquot->dq_dqb.dqb_isoftlimit && dquot->dq_dqb.dqb_curinodes >= dquot->dq_dqb.dqb_isoftlimit)) { @@ -269,43 +272,43 @@ return 0; } -FILE *run_mailer(char *command) +static FILE *run_mailer(char *command) { int pipefd[2]; FILE *f; if (pipe(pipefd) < 0) { - errstr(_("Can't create pipe: %s\n"), strerror(errno)); + errstr(_("Cannot create pipe: %s\n"), strerror(errno)); return NULL; } signal(SIGPIPE, SIG_IGN); switch(fork()) { case -1: - errstr(_("Can't fork: %s\n"), strerror(errno)); + errstr(_("Cannot fork: %s\n"), strerror(errno)); return NULL; case 0: close(pipefd[1]); if (dup2(pipefd[0], 0) < 0) { - errstr(_("Can't duplicate descriptor: %s\n"), strerror(errno)); + errstr(_("Cannot duplicate descriptor: %s\n"), strerror(errno)); wc_exit(1); } execl(SHELL, SHELL, "-c", command, NULL); - errstr(_("Can't execute '%s': %s\n"), command, strerror(errno)); + errstr(_("Cannot execute '%s': %s\n"), command, strerror(errno)); wc_exit(1); default: close(pipefd[0]); if (!(f = fdopen(pipefd[1], "w"))) - errstr(_("Can't open pine: %s\n"), strerror(errno)); + errstr(_("Cannot open pine: %s\n"), strerror(errno)); return f; } } -int admin_name_cmp(const void *key, const void *mem) +static int admin_name_cmp(const void *key, const void *mem) { return strcmp(key, ((struct adminstable *)mem)->grpname); } -int should_cc(struct offenderlist *offender, struct configparams *config) +static int should_cc(struct offenderlist *offender, struct configparams *config) { struct usage *lptr; struct util_dqblk *dqb; @@ -324,7 +327,35 @@ return 0; } -int mail_user(struct offenderlist *offender, struct configparams *config) +/* Substitute %s and %i for 'name' and %h for hostname */ +static void format_print(FILE *fp, char *fmt, char *name) +{ + char *ch, *lastch = fmt; + + for (ch = strchr(fmt, '%'); ch; lastch = ch+2, ch = strchr(ch+2, '%')) { + *ch = 0; + fputs(lastch, fp); + *ch = '%'; + switch (*(ch+1)) { + case 's': + case 'i': + fputs(name, fp); + break; + case 'h': + fputs(hostname, fp); + break; + case 'd': + fputs(domainname, fp); + break; + case '%': + fputc('%', fp); + break; + } + } + fputs(lastch, fp); +} + +static int mail_user(struct offenderlist *offender, struct configparams *config) { struct usage *lptr; FILE *fp; @@ -441,12 +472,12 @@ if (offender->offender_type == USRQUOTA) if (config->user_message) - fputs(config->user_message, fp); + format_print(fp, config->user_message, offender->offender_name); else fputs(DEF_USER_MESSAGE, fp); else if (config->group_message) - fprintf(fp, config->group_message, offender->offender_name); + format_print(fp, config->group_message, offender->offender_name); else fprintf(fp, DEF_GROUP_MESSAGE, offender->offender_name); @@ -491,24 +522,24 @@ if (offender->offender_type == USRQUOTA) if (config->user_signature) - fputs(config->user_signature, fp); + format_print(fp, config->user_signature, offender->offender_name); else fprintf(fp, DEF_USER_SIGNATURE, config->support, config->phone); else if (config->group_signature) - fputs(config->group_signature, fp); + format_print(fp, config->group_signature, offender->offender_name); else fprintf(fp, DEF_GROUP_SIGNATURE, config->support, config->phone); fclose(fp); if (wait(&status) < 0) /* Wait for mailer */ - errstr(_("Can't wait for mailer: %s\n"), strerror(errno)); + errstr(_("Cannot wait for mailer: %s\n"), strerror(errno)); else if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) errstr(_("Warning: Mailer exitted abnormally.\n")); return 0; } -int mail_to_offenders(struct configparams *config) +static int mail_to_offenders(struct configparams *config) { struct offenderlist *lptr; int ret = 0; @@ -524,7 +555,7 @@ /* * Wipe spaces, tabs, quotes and newlines from beginning and end of string */ -void stripstring(char **buff) +static void stripstring(char **buff) { int i; @@ -541,7 +572,7 @@ /* * Substitute '|' with end of lines */ -void create_eoln(char *buf) +static void create_eoln(char *buf) { char *colpos = buf; @@ -552,7 +583,7 @@ /* * Read /etc/quotatab (description of devices for users) */ -int get_quotatable(void) +static int get_quotatable(void) { FILE *fp; char buffer[IOBUF_SIZE], *colpos, *devname, *devdesc; @@ -560,7 +591,7 @@ struct stat st; if (!(fp = fopen(quotatabfile, "r"))) { - errstr(_("Can't open %s: %s\nWill use device names.\n"), quotatabfile, strerror(errno)); + errstr(_("Cannot open %s: %s\nWill use device names.\n"), quotatabfile, strerror(errno)); qtab_i = 0; return 0; } @@ -583,7 +614,7 @@ } /* Parse line */ if (!(colpos = strchr(buffer, ':'))) { - errstr(_("Can't parse line %d in quotatab (missing ':')\n"), line); + errstr(_("Cannot parse line %d in quotatab (missing ':')\n"), line); qtab_i--; continue; } @@ -597,17 +628,37 @@ create_eoln(quotatable[qtab_i].devdesc); if (stat(quotatable[qtab_i].devname, &st) < 0) - errstr(_("Can't stat device %s (maybe typo in quotatab)\n"), quotatable[qtab_i].devname); + errstr(_("Cannot stat device %s (maybe typo in quotatab)\n"), quotatable[qtab_i].devname); } fclose(fp); return 0; } +/* Check correctness of the given format */ +static void verify_format(char *fmt, char *varname) +{ + char *ch; + + for (ch = strchr(fmt, '%'); ch; ch = strchr(ch+2, '%')) { + switch (*(ch+1)) { + case 's': + case 'i': + case 'h': + case 'd': + case '%': + continue; + default: + die(1, _("Incorrect format string for variable %s.\n\ +Unrecognized expression %%%c.\n"), varname, *(ch+1)); + } + } +} + /* * Reads config parameters from configfile * uses default values if errstr occurs */ -int readconfigfile(const char *filename, struct configparams *config) +static int readconfigfile(const char *filename, struct configparams *config) { FILE *fp; char buff[IOBUF_SIZE]; @@ -633,7 +684,7 @@ #endif if (!(fp = fopen(filename, "r"))) { - errstr(_("Can't open %s: %s\n"), filename, strerror(errno)); + errstr(_("Cannot open %s: %s\n"), filename, strerror(errno)); return -1; } @@ -692,18 +743,22 @@ } else if (!strcmp(var, "MESSAGE")) { config->user_message = sstrdup(value); create_eoln(config->user_message); + verify_format(config->user_message, "MESSAGE"); } else if (!strcmp(var, "SIGNATURE")) { config->user_signature = sstrdup(value); create_eoln(config->user_signature); + verify_format(config->user_signature, "SIGNATURE"); } else if (!strcmp(var, "GROUP_MESSAGE")) { config->group_message = sstrdup(value); create_eoln(config->group_message); + verify_format(config->group_message, "GROUP_MESSAGE"); } else if (!strcmp(var, "GROUP_SIGNATURE")) { config->group_signature = sstrdup(value); create_eoln(config->group_signature); + verify_format(config->group_signature, "GROUP_SIGNATURE"); } else if (!strcmp(var, "LDAP_MAIL")) { if(strcasecmp(value, "true") == 0) @@ -753,20 +808,20 @@ return 0; } -int admin_cmp(const void *a1, const void *a2) +static int admin_cmp(const void *a1, const void *a2) { return strcmp(((struct adminstable *)a1)->grpname, ((struct adminstable *)a2)->grpname); } /* Get administrators of the groups */ -int get_groupadmins(void) +static int get_groupadmins(void) { FILE *f; int line = 0; char buffer[IOBUF_SIZE], *colpos, *grouppos, *endname, *adminpos; if (!(f = fopen(adminsfile, "r"))) { - errstr(_("Can't open file with group administrators: %s\n"), strerror(errno)); + errstr(_("Cannot open file with group administrators: %s\n"), strerror(errno)); return -1; } @@ -781,7 +836,7 @@ /* Find splitting colon */ for (grouppos = colpos; *colpos && *colpos != ':'; colpos++); if (!*colpos || grouppos == colpos) { - errstr(_("Parse error at line %d. Can't find end of group name.\n"), line); + errstr(_("Parse error at line %d. Cannot find end of group name.\n"), line); continue; } /* Cut trailing spaces */ @@ -790,7 +845,7 @@ /* Skip initial spaces at admins name */ for (colpos++; isspace(*colpos); colpos++); if (!*colpos) { - errstr(_("Parse error at line %d. Can't find administrators name.\n"), line); + errstr(_("Parse error at line %d. Cannot find administrators name.\n"), line); continue; } /* Go through admins name */ @@ -815,7 +870,7 @@ return 0; } -struct quota_handle *find_handle_dev(char *dev, struct quota_handle **handles) +static struct quota_handle *find_handle_dev(char *dev, struct quota_handle **handles) { int i; @@ -823,7 +878,7 @@ return handles[i]; } -void warn_quota(void) +static void warn_quota(void) { struct quota_handle **handles; struct configparams config; @@ -835,7 +890,7 @@ wc_exit(1); if (flags & FL_USER) { - handles = create_handle_list(0, NULL, USRQUOTA, -1, IOI_LOCALONLY | IOI_READONLY | IOI_OPENFILE, (flags & FL_NOAUTOFS ? MS_NO_AUTOFS : 0)); + handles = create_handle_list(0, NULL, USRQUOTA, -1, IOI_READONLY | IOI_OPENFILE, MS_LOCALONLY | (flags & FL_NOAUTOFS ? MS_NO_AUTOFS : 0)); if (!maildev[0] || !strcasecmp(maildev, "any")) maildev_handle = NULL; else @@ -847,7 +902,7 @@ if (flags & FL_GROUP) { if (get_groupadmins() < 0) wc_exit(1); - handles = create_handle_list(0, NULL, GRPQUOTA, -1, IOI_LOCALONLY | IOI_READONLY | IOI_OPENFILE, (flags & FL_NOAUTOFS ? MS_NO_AUTOFS : 0)); + handles = create_handle_list(0, NULL, GRPQUOTA, -1, IOI_READONLY | IOI_OPENFILE, MS_LOCALONLY | (flags & FL_NOAUTOFS ? MS_NO_AUTOFS : 0)); if (!maildev[0] || !strcasecmp(maildev, "any")) maildev_handle = NULL; else @@ -863,7 +918,18 @@ /* Print usage information */ static void usage(void) { - errstr(_("Usage:\n warnquota [-ugsid] [-F quotaformat] [-c configfile] [-q quotatabfile]\n")); + errstr(_("Usage:\n warnquota [-ugsid] [-F quotaformat] [-c configfile] [-q quotatabfile] [-a adminsfile]\n\n\ +-u, --user warn users\n\ +-g, --group warn groups\n\ +-s, --human-readable send information in more human friendly units\n\ +-i, --no-autofs avoid autofs mountpoints\n\ +-d, --no-details do not send quota information itself\n\ +-F, --format=formatname use quotafiles of specific format\n\ +-c, --config=config-file non-default config file\n\ +-q, --quota-tab=quotatab-file non-default quotatab\n\ +-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); wc_exit(1); } @@ -871,15 +937,29 @@ static void parse_options(int argcnt, char **argstr) { int ret; + struct option long_opts[] = { + { "user", 0, NULL, 'u' }, + { "group", 0, NULL, 'g' }, + { "version", 0, NULL, 'V' }, + { "help", 0, NULL, 'h' }, + { "format", 1, NULL, 'F' }, + { "config", 1, NULL, 'c' }, + { "quota-tab", 1, NULL, 'q' }, + { "admins-file", 1, NULL, 'a' }, + { "no-autofs", 0, NULL, 'i' }, + { "human-readable", 0, NULL, 's' }, + { "no-details", 0, NULL, 'd' }, + { NULL, 0, NULL, 0 } + }; - while ((ret = getopt(argcnt, argstr, "ugVF:hc:q:a:isd")) != -1) { + while ((ret = getopt_long(argcnt, argstr, "ugVF:hc:q:a:isd", long_opts, NULL)) != -1) { switch (ret) { case '?': case 'h': usage(); case 'V': version(); - break; + exit(0); case 'F': if ((fmt = name2fmt(optarg)) == QF_ERROR) wc_exit(1); @@ -914,10 +994,21 @@ flags |= FL_USER; } +static void get_host_name(void) +{ + struct utsname uts; + + if (uname(&uts)) + die(1, _("Cannot get host name: %s\n"), strerror(errno)); + hostname = uts.nodename; + domainname = uts.domainname; +} + int main(int argc, char **argv) { gettexton(); progname = basename(argv[0]); + get_host_name(); parse_options(argc, argv); init_kernel_interface(); --- quota-3.13.orig/debian/rules +++ quota-3.13/debian/rules @@ -0,0 +1,129 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This is the debhelper compatability version to use. +export DH_COMPAT=3 + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + ( [ "`dpkg --print-architecture`" = "powerpc" ] && export CFLAGS=-D__BYTEORDER_HAS_U64__; \ + ./configure --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --sysconfdir=/etc --with-ext2direct=yes --enable-rpcsetquota=yes) + + touch configure-stamp + +build: configure-stamp build-stamp +build-stamp: + dh_testdir + + # Add here commands to compile the package. + # Make sure _PATH_VI is set to /usr/bin/editor according to policy + -mv quotaops.c q.c + cat q.c|sed -e 's#_PATH_VI#"/usr/bin/editor"#'>quotaops.c + $(MAKE) + -mv q.c quotaops.c + + # Create a POT file for translators + make pot && mv pot.po po/quota.pot + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f po/quota.pot + rm -f build-stamp *~ debian/*~ configure-stamp + + # Add here commands to clean up after the build process. + -$(MAKE) realclean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/quota. + -mv edquota.8 e.8 + # change default editor to /usr/bin/editor + cat e.8 | sed 's#vi (1)#editor (1)#' > edquota.8 + -rm e.8 + $(MAKE) ROOTDIR=`pwd`/debian/quota \ + BIN_OWNER=root BIN_GROUP=root \ + LN="ln -s"\ + mandir=/usr/share/man \ + DEF_BIN_MODE=755 DEF_SBIN_MODE=755 install + + install -o root -g root -m 644 debian/warnquota.conf `pwd`/debian/quota/etc + install -o root -g root -m 644 debian/quotatab `pwd`/debian/quota/etc + # Since version 3.07 quota doesn't install files into /sbin anymore + # so we have to move the files + mv `pwd`/debian/quota/usr/sbin/quotacheck `pwd`/debian/quota/sbin + mv `pwd`/debian/quota/usr/sbin/quotaon `pwd`/debian/quota/sbin + mv `pwd`/debian/quota/usr/sbin/quotaoff `pwd`/debian/quota/sbin + mv `pwd`/debian/quota/usr/sbin/convertquota `pwd`/debian/quota/sbin + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install +# dh_testversion + dh_testdir + dh_testroot + dh_installdebconf + dh_installdocs doc/*.* warnquota.conf + dh_installexamples + dh_installmenu +# dh_installemacsen +# dh_installpam + dh_installinit --init-script=quotarpc + # + # dh_installinit cannot be configured to not install the defaults + # file for quotarpc, so we have to manually delete it + # + -rm -rf `pwd`/debian/quota/etc/default/quotarpc + dh_installinit + dh_installcron + dh_installmanpages + # remove man pages already in libc + -rm -rf `pwd`/debian/quota/usr/share/man/man2 + # and include files in libc-dev + -rm -rf `pwd`/debian/quota/usr/include + (cd `pwd`/debian/quota/usr/share/man/man8 && \ + ln -s rquotad.8.gz rpc.rquotad.8.gz) + (cd `pwd`/debian/quota/usr/share/man/man8 && \ + ln -s quotaon.8.gz quotaoff.8.gz) + dh_installinfo + dh_installchangelogs Changelog + dh_link + dh_strip + dh_compress + dh_fixperms +# dh_makeshlibs + dh_installdeb +# dh_perl + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install + +%: %pod + pod2man \ + --section=`echo $@ | sed 's/^.*\.//'` \ + --center="Debian GNU/Linux manual"\ + --date="Debian Project"\ + --release="`date '+%B %Y'`" \ + $< >,$@ && mv -f ,$@ $@;\ + rm -f ,$@ --- quota-3.13.orig/debian/config +++ quota-3.13/debian/config @@ -0,0 +1,162 @@ +#! /bin/sh + +set -e + +# We need debconf +. /usr/share/debconf/confmodule + +# The following function does the real stuff +debconf_dialog() { + # Ask the user if he wants this stuff at all + db_input medium quota/run_warnquota || true + db_go + + # Ask more questions if warnquota enabled + db_get quota/run_warnquota + if [ "$RET" = "true" ]; then + # Set the defaults for email addresses + if [ -f /etc/mailname ]; then + email="root@`cat /etc/mailname`" + else + email="root@`hostname -f`" + fi + + db_fget quota/mailfrom seen + if [ "$RET" = "false" ]; then + db_set quota/mailfrom "$email" + fi + db_fget quota/supportemail seen + if [ "$RET" = "false" ]; then + db_set quota/supportemail "$email" + fi + db_fget quota/message seen + if [ "$RET" = "false" ]; then + db_set quota/message "" + fi + db_fget quota/signature seen + if [ "$RET" = "false" ]; then + db_set quota/signature "" + fi + db_fget quota/subject seen + if [ "$RET" = "false" ]; then + db_set quota/subject "" + fi + db_fget quota/cc seen + if [ "$RET" = "false" ]; then + db_set quota/cc "" + fi + db_fget quota/cc_before seen + if [ "$RET" = "false" ]; then + db_set quota/cc_before "" + fi + db_fget quota/group_message seen + if [ "$RET" = "false" ]; then + db_set quota/group_message "" + fi + db_fget quota/group_signature seen + if [ "$RET" = "false" ]; then + db_set quota/group_signature "" + fi + + # Now ask the user + db_input medium quota/supportemail || true + db_input high quota/supportphone || true + db_input low quota/mailfrom || true + db_input low quota/message || true + db_input low quota/signature || true + db_input low quota/subject || true + db_input low quota/cc || true + db_input low quota/cc_before || true + db_input low quota/group_message || true + db_input low quota/group_signature || true + db_go + + # If we did not get a support phone we'll set it to "*unknown*" + db_get quota/supportphone + if [ -z "$RET" ]; then + db_set quota/supportphone "*unknown*" + fi + fi +} + +# Check if we need to run the configuration dialog +# a) explicitely requested +if [ "$1" = "reconfigure" ]; then + debconf_dialog + # Move the old configuration files out of the way + rm -f /etc/warnquota.conf /etc/default/quota +fi + +# b) new installation +if [ "$1" = "configure" ] && [ -z "$2" ]; then + debconf_dialog + db_get quota/run_warnquota + if [ "$RET" = "true" ]; then + # Move the old configuration file out of the way + rm -f /etc/warnquota.conf /etc/default/quota + fi +fi + +# c) upgrading from before debconf +# In this case only the debconf data is updated - it is not written to +# the config file, only after dpkg-reconfigure something will happen. +if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le-nl "3.03-4"; then + # Figure out what we can from /etc/warnquota.conf + if grep -q "" /etc/warnquota.conf; then + db_set quota/run_warnquota false + db_fset quota/run_warnquota seen true + db_set quota/supportphone "*unknown*" + else + db_set quota/run_warnquota true + db_fset quota/run_warnquota seen true + db_set quota/mailfrom \ + "`sed -n 's/^FROM[^=]*=[[:space:]]*"\([^"]*\)"$/\1/p' \ + /etc/warnquota.conf`" + db_fset quota/mailfrom seen true + db_set quota/supportemail \ + "`sed -n 's/^SUPPORT[^=]*=[[:space:]]*"\([^"]*\)"$/\1/p' \ + /etc/warnquota.conf`" + db_fset quota/supportemail seen true + db_set quota/supportphone \ + "`sed -n 's/^PHONE[^=]*=[[:space:]]*"\([^"]*\)"$/\1/p' \ + /etc/warnquota.conf`" + db_fset quota/supportphone seen true + fi +fi + +# d) upgrading changes behaviour of rpc.rquotad +if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le-nl "3.06-1"; then + db_input high quota/rquota_setquota || true + db_go +fi + +# e) upgrading add warnquota group email +if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le-nl "3.06-2"; then + db_input low quota/group_message || true + db_input low quota/group_signature || true + db_go +fi + +# f) upgrading from a version that did not ask for SUBJECT and CC +if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le-nl "3.11-1"; then + # Figure out what we can from /etc/warnquota.conf + db_set quota/subject \ + "`sed -n 's/^SUBJECT[^=]*=[[:space:]]*"\([^"]*\)"$/\1/p' \ + /etc/warnquota.conf`" + db_fset quota/subject seen true + db_set quota/cc \ + "`sed -n 's/^CC_TO[^=]*=[[:space:]]*"\([^"]*\)"$/\1/p' \ + /etc/warnquota.conf`" + db_fset quota/cc seen true +fi + +# g) upgrading from a version that did not have CC_BEFORE +if [ "$1" = "configure" ] && dpkg --compare-versions "$2" le-nl "3.11-4"; then + # Ask the question only if warnquota enabled + db_get quota/run_warnquota + if [ "$RET" = "true" ]; then + db_input low quota/cc_before || true + db_go + fi +fi + --- quota-3.13.orig/debian/postinst +++ quota-3.13/debian/postinst @@ -0,0 +1,176 @@ +#! /bin/sh +# postinst script for quota +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see /usr/doc/packaging-manual/ +# +# quoting from the policy: +# Any necessary prompting should almost always be confined to the +# post-installation script, and should be protected with a conditional +# so that unnecessary prompting doesn't happen if a package's +# installation fails and the `postinst' is called with `abort-upgrade', +# `abort-remove' or `abort-deconfigure'. + +if [ "$1" = "configure" ]; then + . /usr/share/debconf/confmodule + # + # generate the config files if they don't exist + # + + if [ ! -f /etc/warnquota.conf ]; then + db_get quota/mailfrom + mailfrom="$RET" + db_get quota/supportemail + supportemail="$RET" + db_get quota/supportphone + supportphone="$RET" + db_get quota/message + message="$RET" + db_get quota/signature + signature="$RET" + db_get quota/subject + subject="$RET" + db_get quota/cc + cc="$RET" + db_get quota/cc_before + cc_before="$RET" + + temp=`mktemp /etc/warnquota.conf.XXXXXX` + cat <"$temp" +# Debian configuration +# generated from debconf on `date` +# +# Command used to send email +MAIL_CMD = "/usr/sbin/sendmail -t" +# From email used in generated emails +FROM = "$mailfrom" +# Subject line +SUBJECT = $subject +# Send a copy to this address +CC_TO = "$cc" +# Support email for assistance (included in generated mail) +SUPPORT = "$supportemail" +# Support phone for assistance (included in generated mail) +PHONE = "$supportphone" +EOF + + if [ -n "$message" ]; then + cat <>"$temp" +# The message to send +MESSAGE = "$message" +EOF + fi + + if [ -n "$signature" ]; then + cat <>"$temp" +# The signature of the mail +SIGNATURE = "$signature" +EOF + fi + + if [ -n "$cc_before" ]; then + cat <>"$temp" +# CC admin this time before the end of grace period +CC_BEFORE = "$cc_before" +EOF + fi + + mv $temp /etc/warnquota.conf + fi + + if [ ! -f /etc/default/quota ]; then + db_get quota/run_warnquota + run_warnquota="$RET" + temp=`mktemp /etc/default/quota.XXXXXX` + cat <"$temp" +# Configuration for quota scripts +# generated from debconf on `date` +# +# Set to "true" if warnquota should be run in cron.daily +run_warnquota="$run_warnquota" +EOF + mv $temp /etc/default/quota + fi + + # + # stop debconf + # + db_stop +fi + +case "$1" in + configure) + # if we have a recenty configured package, do nothing + if test -f /var/run/quota.upgrade; then + # restart quota server if needed + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d quotarpc start + else + /etc/init.d/quotarpc start + fi + else + fs=`awk '/quota/ {print $2}' /etc/fstab`; + # enable quota if already configured + if [ "$fs" ]; then + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d quota start + else + /etc/init.d/quota start > /dev/null 2>&1 & + fi + fi + + # set quota_is_new file + touch /var/lib/quota/new + fi + # if the old /var/state/quota dir exists, move the files to the new location + if [ -d /var/state/quota ]; then + [ -f /var/state/quota/off ] && touch /var/lib/quota/off + [ -f /var/state/quota/new ] && touch /var/lib/quota/new + rm -rf /var/state/quota + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +# +# remove old links +# +if test -f /var/run/quota.upgrade +then + if dpkg --compare-versions "$2" lt 3.00pre01-10 + then + update-rc.d -f quota remove 2>/dev/null > /dev/null + elif dpkg --compare-versions "$2" lt 3.12-3 + then + update-rc.d -f quotarpc remove 2>/dev/null > /dev/null + fi +fi + +update-rc.d quota start 35 S . stop 85 0 6 . >/dev/null + +update-rc.d quotarpc defaults 21 79 >/dev/null + +rm -f /var/run/quota.upgrade + +exit 0 + + --- quota-3.13.orig/debian/changelog +++ quota-3.13/debian/changelog @@ -0,0 +1,938 @@ +quota (3.13-6) unstable; urgency=medium + + * Added several patches from upstream CVS making this essantially a + pre-3.14 release, closes: #366414, #350933 + * Fixed incorrect prompting in debconf template. + * Fixed German and Dutch po files to be in sync with english version. + * To the best of my knowledge fixed most of the other po files, except for + those where I needed a special font. + + -- Michael Meskes Sun, 14 May 2006 13:36:29 +0200 + +quota (3.13-5) unstable; urgency=medium + + * Added Italian translation, closes: #362729 + + -- Michael Meskes Sun, 16 Apr 2006 13:57:07 +0200 + +quota (3.13-4) unstable; urgency=medium + + * Added Swedish translation, closes: #338636 + + -- Michael Meskes Sat, 12 Nov 2005 17:16:27 +0100 + +quota (3.13-3) unstable; urgency=medium + + * Added alternate dependency debconf-2.0. + + -- Michael Meskes Tue, 27 Sep 2005 20:11:25 +0200 + +quota (3.13-2) unstable; urgency=medium + + * Added upstream patch to implemented nicer message formatting for + warnquota, closes: #310945 + + -- Michael Meskes Fri, 16 Sep 2005 14:36:17 +0200 + +quota (3.13-1) unstable; urgency=medium + + * New upstream version + * Added Ubuntu patch to automatically create a POT file, closes: #313524 + + -- Michael Meskes Sun, 26 Jun 2005 11:19:19 +0200 + +quota (3.12-7) unstable; urgency=medium + + * Added Russian translation, closes: #310028 + * Added Vietnamese translation, closes: #310052 + + -- Michael Meskes Mon, 6 Jun 2005 14:37:52 +0200 + +quota (3.12-6) unstable; urgency=medium + + * Removed patch file that I accidently left in the source tree + * Removed non-doc CVS patches that shouldn't have been in -5 anyway + * Removed update-inetd call completely + * Added patch to set of grace time only after exceeding soft limit, + not at reaching + * Added small patch from CVS to fix memory leak in rquotad + + -- Michael Meskes Wed, 11 May 2005 12:29:13 +0200 + +quota (3.12-5) unstable; urgency=medium + + * Added some fixes for documentation from CVS, closes: #301035, #301040 + * Fixed postrm to not call update-inetd if not present, closes: #301370 + + -- Michael Meskes Tue, 10 May 2005 14:19:40 +0200 + +quota (3.12-4) unstable; urgency=low + + * Updated edquota.8 from CVS, closes: #275531 + * Updated package description + + -- Michael Meskes Tue, 25 Jan 2005 15:38:18 +0100 + +quota (3.12-3) unstable; urgency=low + + * Updated Brazilian Portuguese debconf translation, closes: #264256 + * Updated copyright file which was inaccurate, closes: #273149 + * Removed XSI:isms and a bashism, closes: #260603 + * Moved start of rpc.rdquota to a later point in the boot process, closes: #274016 + * Added RPCRQUOTADOPTS to /etc/defaults/quota, closes: #253834 + + -- Michael Meskes Fri, 1 Oct 2004 15:49:01 +0200 + +quota (3.12-2) unstable; urgency=low + + * Fixed setquota exit status, closes: #257144 + * Updated czech debconf translation, closes: #251679 + * Updated dutch debconf translation, closes: #260290 + + -- Michael Meskes Tue, 20 Jul 2004 20:58:19 +0200 + +quota (3.12-1) unstable; urgency=low + + * New upstream version, closes: #241858 + * Updated french debconf translation, closes: #236876 + * Added catalan debconf translation, closes: #250128 + + -- Michael Meskes Fri, 28 May 2004 13:55:21 +0200 + +quota (3.11-5) unstable; urgency=low + + * Updated Danish debconf translation, closes: #239455 + * Updated Japanese debconf translation, closes: #237044 + + -- Michael Meskes Thu, 25 Mar 2004 08:08:26 +0100 + +quota (3.11-4) unstable; urgency=low + + * Updated French debconf translation, closes: #236876 + * Added upstream patch for a new warnquota option, closes: #226107 + * Added new warnquota option to debconf. + + -- Michael Meskes Sat, 20 Mar 2004 09:21:13 +0100 + +quota (3.11-3) unstable; urgency=low + + * Updated German and Danish debconf translation, closes: #235762 + * Fixed typo in template, closes: #235760, #235761, #236255 + + -- Michael Meskes Sun, 7 Mar 2004 15:17:33 +0100 + +quota (3.11-2) unstable; urgency=low + + * Added Danish and Czech debconf translation, closes: #233087, #234165 + * Add debconf settings for SUBJECT and CC_TO, closes: #231675, #231717 + * Added hint to warnquota manpage that it only checks softlimits, closes: #231716 + + -- Michael Meskes Sun, 29 Feb 2004 14:43:23 +0100 + +quota (3.11-1) unstable; urgency=low + + * New upstream version, closes: #232375, #223999, #226539, #222526 + * Added Japanese debconf translation, closes: #229294 + + -- Michael Meskes Thu, 12 Feb 2004 15:12:14 +0100 + +quota (3.10-1) unstable; urgency=low + + * New upstream version, closes: #224619, #222628 + * Added upstream patch to parse filesystem specs like "ext3,ext2", + closes: #220691 + + -- Michael Meskes Sun, 21 Dec 2003 11:21:11 +0100 + +quota (3.09-5) unstable; urgency=low + + * Added upstream patch to quota, so it does not print info for NFS filesystems + without quotas, closes: #213396 + + -- Michael Meskes Sun, 19 Oct 2003 15:31:30 +0200 + +quota (3.09-4) unstable; urgency=low + + * Update Brazilian Portuguese debconf template, closes: #208109 + * Added missing "exit(0)" to rpc.rquotad, closes: #211402 + + -- Michael Meskes Thu, 25 Sep 2003 17:55:33 +0200 + +quota (3.09-3) unstable; urgency=low + + * This time really added Spanish debconf template, closes: #201729 + * Also added Dutch template, closes: #204922 + * Changed init script to store "quota is on" information early enough, + closes: #204001 + + -- Michael Meskes Wed, 30 Jul 2003 12:52:37 +0200 + +quota (3.09-2) unstable; urgency=low + + * Added upstream patches: + fixed bug in -f option of edquota, closes: #201722 + fixed formatting bug in warnquota, closes: #200432 + added option -s to warnquota + updated Polish messages and some manpages + * Added Spanish debconf template, closes: #201729 + * Corrected packaging format + + -- Michael Meskes Wed, 30 Jul 2003 12:52:37 +0200 + +quota (3.09-1) unstable; urgency=low + + * New upstream version, closes: #200787 + + -- Michael Meskes Sun, 13 Jul 2003 14:36:44 +0200 + +quota (3.08-9) unstable; urgency=low + + * Now use upstream patch for 183330 + * New french template, closes: #195815, #196775 + * Added upstream patch to fix quotacheck problem, closes: #197553 + * Removed call to dh_undocumented. + + -- Michael Meskes Sun, 15 Jun 2003 11:45:52 +0200 + +quota (3.08-8) unstable; urgency=low + + * Just another patch that finally closes: #183330 + * Fixed some typos in english template, closes: #194780, #195492 + * Changed german template accordingly. + * Added french template, closes: #195647 + + -- Michael Meskes Mon, 2 Jun 2003 14:26:10 +0200 + +quota (3.08-7) unstable; urgency=low + + * Just another patch for #183330 + + -- Michael Meskes Thu, 22 May 2003 19:36:24 +0200 + +quota (3.08-6) unstable; urgency=low + + * Added several fixes from CVS. closes: #183330 + * Switched to new po-debconf. closes: #183994 + + -- Michael Meskes Sun, 18 May 2003 13:12:36 +0200 + +quota (3.08-5) unstable; urgency=low + + * Fixed startup script to honor '-' in fs names and lines starting with + blanks. closes: #184370 + + -- Michael Meskes Wed, 19 Mar 2003 12:45:00 +0100 + +quota (3.08-4) unstable; urgency=low + + * Removes 'set -e' from prerm script. Makes no sense there anyway and + closes: #179872 + * Honor '#' in /etc/fstab. closes: #178530 + + -- Michael Meskes Fri, 7 Feb 2003 16:08:33 +0100 + +quota (3.08-3) unstable; urgency=low + + * Added upstream patch to not touch mountpoints mounted without quota + options (closes: #175615) + + -- Michael Meskes Tue, 21 Jan 2003 18:00:23 +0100 + +quota (3.08-2) unstable; urgency=low + + * Added upstream patch to print quota for one user only once + (closes: 171280) + * Remove manpage for e (closes: 175229) + + -- Michael Meskes Wed, 8 Jan 2003 11:56:38 +0100 + +quota (3.08-1) unstable; urgency=low + + * New upstream version + * Put correct upstream location into debian/copyright (closes: 171301) + + -- Michael Meskes Thu, 5 Dec 2002 16:37:43 +0100 + +quota (3.07-7) unstable; urgency=low + + * Made initscript work with dash as /bin/sh and no quota options in + /etc/fstab + * Recompiled on testing + + -- Michael Meskes Thu, 14 Nov 2002 22:32:16 +0100 + +quota (3.07-6) unstable; urgency=low + + * Do not use awk in /etc/init.d/quota (closes: 168639) + * Show machine name in warnquota email subject (closes: 167257) + + -- Michael Meskes Thu, 14 Nov 2002 22:32:16 +0100 + +quota (3.07-5) unstable; urgency=low + + * Use /usr/bin/editor instead of vi (closes: 166918) + + -- Michael Meskes Mon, 4 Nov 2002 08:01:20 +0100 + +quota (3.07-4) unstable; urgency=low + + * Move quotaoff to /sbin as well (closes: 166068) + + -- Michael Meskes Fri, 25 Oct 2002 13:03:39 +0200 + +quota (3.07-3) unstable; urgency=low + + * Make sure quota is started even if a XFS is present with already started + quota support (closes: 164625) + + -- Michael Meskes Thu, 17 Oct 2002 12:06:00 +0200 + +quota (3.07-2) unstable; urgency=low + + * Moved binaries back to /sbin that were moved to /usr/sbin in 3.07-1 + by upstream changes. + + -- Michael Meskes Tue, 8 Oct 2002 20:15:06 +0200 + +quota (3.07-1) unstable; urgency=low + + * New upstream version + + -- Michael Meskes Tue, 24 Sep 2002 18:04:12 +0200 + +quota (3.06-5) unstable; urgency=low + + * Changed init script to not use quotacheck option '-c' if not needed. + + -- Michael Meskes Fri, 20 Sep 2002 21:39:03 +0200 + +quota (3.06-4) unstable; urgency=low + + * Added missing build-depend on e2fslibs-dev (closes: #159257) + + -- Michael Meskes Mon, 2 Sep 2002 11:10:10 +0200 + +quota (3.06-3) unstable; urgency=low + + * Added several fixes from CVS: + support for 32 bit uids with EXT2_DIRECT (closes: #113754) + warnquota also mails about violation of group quotas (closes: #151513) + added nsswitch.conf scanning to speed up repquota (closes: #153745) + * Compiled with EXT2_DIRECT again. + + -- Michael Meskes Tue, 27 Aug 2002 09:40:10 +0200 + +quota (3.06-2) unstable; urgency=low + + * Added several fixes from CVS: + *update manpage of rpc.rquotad (closes: #150891) + *setquota is disabled by default in rpc.rquotad (closes: #150892) + *setquota using RPC is disabled by default in configure + *rised maximal number of mountpoint to 256 + + -- Michael Meskes Thu, 4 Jul 2002 13:59:54 +0200 + +quota (3.06-1) unstable; urgency=low + + * New upstream version released minutes after my last upload. + * Added configure.in from CVS to fix typo. + + -- Michael Meskes Sun, 16 Jun 2002 21:22:01 +0200 + +quota (3.05-4) unstable; urgency=low + + * Made sure /etc/exports is only checked if it exists (closes: #149968) + + -- Michael Meskes Sun, 16 Jun 2002 20:56:13 +0200 + +quota (3.05-3) unstable; urgency=low + + * Fixed docs to not mention "ext2 only" anymore since this is obsolete. + * Added more patches from CVS. + * Run quotacheck with options "-c" and "-m" so quota files get filled on + first start of quota. + + -- Michael Meskes Tue, 21 May 2002 10:48:04 +0200 + +quota (3.05-2) unstable; urgency=high + + * Added forgotten build depend on libwrap0-dev (closes: #145089) + * Made sure quota is removable even if not enabled in + kernel (closes: #142499) + * Added patch from CVS to fix mount point handling in rpc.rquotad. + + -- Michael Meskes Tue, 30 Apr 2002 08:51:14 +0200 + +quota (3.05-1) unstable; urgency=low + + * New bugfixing upstream version (closes: #143648) + * Added brazilian and german debconf templates (closes: #141695) + + -- Michael Meskes Mon, 29 Apr 2002 20:01:41 +0200 + +quota (3.04-1) unstable; urgency=low + + * New upstream version + + -- Michael Meskes Thu, 7 Mar 2002 12:48:37 +0100 + +quota (3.03-11) unstable; urgency=low + + * Even more upstream patches from CVS (closes: #135073). + + -- Michael Meskes Mon, 25 Feb 2002 13:32:45 +0100 + + +quota (3.03-10) unstable; urgency=low + + * Added more upstream patches from CVS (closes: #78602). + + -- Michael Meskes Sun, 24 Feb 2002 11:49:51 +0100 + +quota (3.03-9) unstable; urgency=low + + * XFS does not have [a]quota.* files. So don't check it. + + -- Michael Meskes Tue, 5 Feb 2002 08:09:19 +0100 + +quota (3.03-8) unstable; urgency=low + + * Check whether quota is already enabled + in /etc/init.d/quota (closes: 130302). + + -- Michael Meskes Wed, 23 Jan 2002 10:40:23 +0100 + +quota (3.03-7) unstable; urgency=low + + * Added some more info to README.debian. + * Moved /var/state/quota to /var/lib/quota (closes: 130218). + + -- Michael Meskes Mon, 21 Jan 2002 13:57:06 +0100 + +quota (3.03-6) unstable; urgency=low + + * Fixed bashism in cron script (closes: 129490). + + -- Michael Meskes Wed, 16 Jan 2002 21:46:18 +0100 + +quota (3.03-5) unstable; urgency=low + + * Added patches by Torsten Landschoff with: + - debian/templates: Add templates for debconf. + - debian/config: Add configuration script for getting debconf data. + - debian/postinst: Add generation of config files via debconf and + ask questions only once (closes: #113154, #112277). + - debian/cron.daily: + + Make sure warnquota is installed before running it (policy). + + Get the information if warnquota is to be run from + /etc/default/quota instead of grepping for a magic string + in /etc/warnquota.conf (closes: #128470). + - debian/postrm: Remove /etc/default/quota on purge (generated by postinst) + - debian/rules: Run dh_installdebconf to install the debconf support stuff. + - debian/control: Depend on debconf. + Great work Torsten. Thanks. + * Made sure debconf reads all debconfed data from already configured + warnquota.conf files. + * Include /etc/default/quota as conffile. + * Do not touch the default conffiles if warnquota is not supposed to be run. + * Call /etc/init.d/quotarpc from postinst to restart rpc.rquotad. + + -- Michael Meskes Wed, 9 Jan 2002 15:26:18 +0100 + +quota (3.03-4) unstable; urgency=low + + * Fixed typo in /etc/init.d/quota so quotaoff works again. + * Fixed if clauses in /etc/init.d/quota. + * Added '-p' option to quotaon (from CVS). + + -- Michael Meskes Tue, 8 Jan 2002 07:59:24 +0100 + +quota (3.03-3) unstable; urgency=low + + * Compiled with -D_FILE_OFFSET_BITS=64 (closes: 121427). + * Changed /etc/init.d/quota so quota is checked if quota file is empty. + + -- Michael Meskes Mon, 7 Jan 2002 14:48:55 +0100 + +quota (3.03-2) unstable; urgency=high + + * Compiled without EXT2_DIRECT to work around bug 113754. Thus there is no + build-depend on e2fslibs-dev for this release. + + -- Michael Meskes Thu, 27 Dec 2001 17:39:16 +0100 + +quota (3.03-1) unstable; urgency=low + + * New upstream version. + * Fixed spelling bugs (closes: 125299) + + -- Michael Meskes Thu, 13 Dec 2001 15:10:15 +0100 + +quota (3.02-4) unstable; urgency=low + + * Added several upstream patches from CVS (closes: 116740, 122170, 106119). + + -- Michael Meskes Thu, 13 Dec 2001 15:10:15 +0100 + +quota (3.02-3) unstable; urgency=high + + * Removed inline option from function definition to make quota compile on + powerpc (closes: 120224). + * Made quota compile on hppa. + + -- Michael Meskes Fri, 23 Nov 2001 12:08:23 +0100 + +quota (3.02-2) unstable; urgency=low + + * Minor upstream upstream patch to display correct version number. + + -- Michael Meskes Fri, 16 Nov 2001 17:07:14 +0100 + +quota (3.02-1) unstable; urgency=low + + * New upstream version, essantially the same as 3.01-2. + + -- Michael Meskes Fri, 16 Nov 2001 12:59:49 +0100 + +quota (3.01-2) unstable; urgency=low + + * Add several bugfixes from CVS (closes: 118597). + * Fixed quotatab file (closes: 117017). + + -- Michael Meskes Tue, 13 Nov 2001 19:07:26 +0100 + +quota (3.01-1) unstable; urgency=low + + * New upstream version. + * Install convertquota only once (closes: 112934). + + -- Michael Meskes Sun, 23 Sep 2001 09:57:55 +0200 + +quota (3.00pre01-15) unstable; urgency=high + + * Upstream bug fixes yet again. + * Fixed update-rc.d problem (closes: #107767). + + -- Michael Meskes Wed, 19 Sep 2001 11:49:30 +0200 + +quota (3.00pre01-14) unstable; urgency=high + + * Even more upstream bug fixes. + * Set urgency to high to get the important bugs fixed asap. Should have + done this with -13. + + -- Michael Meskes Mon, 17 Sep 2001 15:13:29 +0200 + +quota (3.00pre01-13) unstable; urgency=low + + * More upstream bug fixes. + * Fixed silly bug in init.d file (closes: #112426). + * Default answer to warnquota question is "no" now (closes: #112277). + * Add hack for incorrect kernel header (closes: #111056). + + -- Michael Meskes Sun, 16 Sep 2001 14:40:32 +0200 + +quota (3.00pre01-12) unstable; urgency=low + + * More upstream bug fixes. + + -- Michael Meskes Wed, 29 Aug 2001 20:06:56 +0200 + +quota (3.00pre01-11) unstable; urgency=low + + * More upstream bug fixes (closes: #104737). + + -- Michael Meskes Sun, 5 Aug 2001 11:43:55 +0200 + +quota (3.00pre01-10) unstable; urgency=low + + * Fully remove old init links (closes: #103989). + * Remove CVS junk (closes: #103993). + + -- Michael Meskes Mon, 9 Jul 2001 17:50:15 +0200 + +quota (3.00pre01-9) unstable; urgency=low + + * Split init script into two scripts (closes: #103786). + * Made sure warnquota is only run daily if configured (closes: #103793). + + -- Michael Meskes Sun, 8 Jul 2001 16:57:39 +0200 + +quota (3.00pre01-8) unstable; urgency=low + + * More upstream bug fixes. + * Add some comments to quotatab (closes: #100603). + + -- Michael Meskes Mon, 18 Jun 2001 09:28:30 +0200 + +quota (3.00pre01-7) unstable; urgency=low + + * this time reall removed netkit-rpc from Build-Depends. + + -- Michael Meskes Wed, 6 Jun 2001 15:53:14 +0200 + +quota (3.00pre01-6) unstable; urgency=low + + * Removed netkit-rpc from Build-Depends (closes: #99469). + + -- Michael Meskes Wed, 6 Jun 2001 15:49:42 +0200 + +quota (3.00pre01-5) unstable; urgency=low + + * Added some more CVS patches (closes: #97659). + + -- Michael Meskes Tue, 29 May 2001 13:22:04 +0200 + +quota (3.00pre01-4) unstable; urgency=high + + * Added some more CVS patches. + * Correct Build-Depends (closes: #97505). + + -- Michael Meskes Wed, 16 May 2001 13:24:05 +0200 + +quota (3.00pre01-3) unstable; urgency=high + + * Added some CVS patches (closes: #84417). + + -- Michael Meskes Sun, 13 May 2001 18:40:06 +0200 + +quota (3.00pre01-2) unstable; urgency=high + + * New upstream version based on 3.01-pre5. + * Fixed more bugs in postinst and init.d script. + * Removed workarounds for two bugs that were fixed upstream. + + -- Michael Meskes Wed, 2 May 2001 14:13:23 +0200 + +quota (3.00pre01-1) unstable; urgency=high + + * New upstream version based on 3.01-pre4 (closes: #76413, #88655, #84417, #74577) + * Updated from CVS for some bugfixes. + * Fixed postinst (closes: #93336). + + -- Michael Meskes Mon, 23 Apr 2001 15:26:38 +0200 + + +quota (2.00-9) unstable; urgency=high + + * Final upstream version. + + -- Michael Meskes Wed, 24 Jan 2001 15:50:02 +0100 + +quota (2.00-8) unstable; urgency=high + + * Add missing exit statement in cron file (closes: #75119) + + -- Michael Meskes Mon, 23 Oct 2000 08:27:24 +0200 + +quota (2.00-7) unstable; urgency=high + + * Add directory for /var/state/quota for our files. + * Run quotacheck only if quotas are enabled (closes: #74717) + + -- Michael Meskes Mon, 16 Oct 2000 15:50:00 +0200 + +quota (2.00-6) unstable; urgency=high + + * Make sure quota is checked at boot time after a fresh install. + * Do a background check after installation for a fresh install. + + -- Michael Meskes Fri, 13 Oct 2000 09:01:04 +0200 + +quota (2.00-5) unstable; urgency=high + + * based upon 2.00-pre11 release (closes: #61431, #47222, #57670) + + -- Michael Meskes Thu, 12 Oct 2000 10:01:56 -0700 + +quota (2.00-4) unstable; urgency=high + + * Fixed warnquota to to use the correct quotas (closes: #72878, #72795, #72230) + * Create/Remove quota_is_off file so we know when to check quota. (closes: #22524, #72232) + * Made quota be executed as early as possible during boot time, so the + calculated quotas are correct. + + -- Michael Meskes Tue, 10 Oct 2000 15:22:03 -0700 + +quota (2.00-3) unstable; urgency=high + + * fixed rules file so all files are installed correctly (closes: #72008) + * fixed postinst to create doc-symlink even on a fresh install (closes: #71316) + + -- Michael Meskes Tue, 19 Sep 2000 14:06:39 -0700 + +quota (2.00-2) unstable; urgency=high + + * based upon 2.00-pre10 release + * added some typos + * fixed init.d quoting bug (closes: #67235, #71318) + + -- Michael Meskes Sun, 17 Sep 2000 18:10:50 -0700 + +quota (2.00-1) unstable; urgency=high + + * new upstream version (closes: #34980, #44585, #46610, #48103) + based upon 2.00-pre4 release + * Fixed edquota manpage (closes: #31215) + * Added cron.daily script that runs warnquota (closes: #41295) + + -- Michael Meskes Mon, 20 Mar 2000 14:32:16 +0100 + +quota (1.65-3) frozen unstable; urgency=high + + * new maintainer for the time being + * fixed typo in init file (closes:#59895) + + -- Michael Meskes Fri, 17 Mar 2000 07:48:23 +0100 + +quota (1.65-2.8) frozen unstable; urgency=high + + * handle quotas as 1024k blocks throughout (Fixes: #39249, #47718) + + -- Michael Stone Fri, 28 Jan 2000 20:52:46 -0500 + +quota (1.65-2.7) unstable; urgency=low + + * powerpc needs -fsinged-char in CFLAGS (Fixes: #51551). NMU. + + -- Konstantinos Margaritis Thu, 2 Dec 1999 15:46:47 +0200 + +quota (1.65-2.6) unstable; urgency=low + + * NMU. + * Extended blocks computation from long to long long for big quotas + (used to have rounding problems). + * FHS compliance. + + -- Philippe Troin Sun, 17 Oct 1999 03:14:38 -0700 + +quota (1.65-2.5) frozen unstable; urgency=low + + * Non-maintainer release + * Removed wrong shlib.local file. + * Recompiled with correct -dev packages instead (Fixes: important Bug#22120). + * Fixed typo in Description (Fixes: Bug#21761). + + -- Yann Dirson Fri, 15 May 1998 00:11:13 +0200 + +quota (1.65-2.4) frozen unstable; urgency=low + + * Non-maintainer release + * Recompiled with local shlibs-file to fix wrong e2fsprogs.shlibs + + -- Wichert Akkerman Sun, 26 Apr 1998 17:01:16 +0200 + +quota (1.65-2.3) frozen unstable; urgency=low + + * Non-maintainer release + * Rebuilt since e2fsprogs swallowed e2fslibsg + + -- Wichert Akkerman Fri, 24 Apr 1998 13:41:12 +0200 + +quota (1.65-2.2) frozen unstable; urgency=low + + * Non-maintainer release + * Move quota to /usr/bin (Bug# 18297) + * Give read a variable in postinst + * Re-upload of 1.65-2.2, last version missed a change + + -- Wichert Akkerman Thu, 16 Apr 1998 15:27:24 +0200 + +quota (1.65-2.1) frozen unstable; urgency=low + + * Non-maintainer release + * Fix spelling error in copyright + * Redirect output of update-rc.d + * Use temporary file in /var/run instead of /tmp + * Add force-reload option to /etc/init.d/quota + * Added symlinks for missing manpages + + -- Wichert Akkerman Fri, 27 Mar 1998 18:30:48 +0100 + +quota (1.65-2) unstable; urgency=low + + * don't recommend quota-doc, it's integrated into + the quota package itself. + + -- Heiko Schlittermann Fri, 13 Feb 1998 09:56:18 +0100 + +quota (1.65-1) unstable; urgency=low + + * new upstream + * used debhelper + * modified console messages according to policy >= 2.3.0.1 (#16954) + * rpc.rquotad now started once (not from inetd) (#6402, #10364) + * fixed debian/rules (#16876) + + -- Heiko Schlittermann Sat, 7 Feb 1998 22:09:15 +0100 + +quota (1.55-8.1) unstable; urgency=low + + * modified for glibc (#11172) + * fixed dependecies (#13361) + + -- Michael Meskes Mon, 24 Nov 1997 11:50:43 +0100 + +quota (1.55-8) frozen unstable; urgency=low + + * but frozen should work :-) + + -- Heiko Schlittermann Tue, 29 Apr 1997 23:13:16 +0200 + +quota (1.55-7) unstable; urgency=low + + * upload to unstable since stable is closed + + -- Heiko Schlittermann Tue, 22 Apr 1997 06:56:13 +0200 + +quota (1.55-6) stable; urgency=low + + * manpages added + + -- Heiko Schlittermann Wed, 26 Mar 1997 10:57:42 +0100 + +quota (1.55-5) stable unstable; urgency=low + + * segfault bug (discovered and fixed + by David Luyer ) + + -- Heiko Schlittermann Wed, 26 Mar 1997 10:57:42 +0100 + +quota (1.55-4) unstable; urgency=low + + * quotacheck -ug for user _and_ group quota + * /etc/init.d/quota start called optionally + + -- Heiko Schlittermann Fri, 18 Oct 1996 13:10:07 +0200 + +quota (1.55-3) stable unstable; urgency=low + + * new source packaging format + * new maintainer (me, Heiko Schlittermann ) + + -- Heiko Schlittermann Wed, 11 Sep 1996 01:09:15 +0200 + +Tue Jan 23 14:40:02 MET 1996 Michael Meskes (meskes@informatik.rwth-aachen.de) + +quota (1.51-0): + +* Added Debian GNU/Linux package maintenance system files. + +* Configured Makefile: + - Enabled support for ext2 file system + - Adjusted paths to FSSTND + - Use soft link + - Removed -fstrength-reduce + +Fri Jan 26 12:30:00 MET 1996 Michael Meskes (meskes@informatik.rwth-aachen.de) + +quota (1.51-1): + +* Corrected control file + +Sun Feb 4 15:51:52 MET 1996 Michael Meskes (meskes@informatik.rwth-aachen.de) + +quota (1.51-2): + +* added -s option for binary install + +* changed CFLAGS to "-O2 -g" + +Sun Feb 11 19:51:53 MET 1996 Michael Meskes (meskes@informatik.rwth-aachen.de) + +quota (1.51-3): + +* re-enabled EXT2_DIRECT + +* changed some include directives to make it compile with linux + 1.3.60+. IMO this should be corrected in the include files, though. + + * added rquota daemon + + * automatically create .changes file + +Wed Mar 6 11:56:20 MET 1996 Michael Meskes (meskes@informatik.rwth-aachen.de) + + quota (1.51-4): + + * added /etc/init.d/quota to debian.conffiles + +Tue Mar 12 11:01:59 MET 1996 Michael Meskes (meskes@informatik.rwth-aachen.de) + + quota (1.51-5): + + * changed the standard editor for edquota to /usr/bin/ae as this is + the only editor guaranteed to exist on Debian + +Thu Apr 11 11:17:28 MET 1996 Michael Meskes (meskes@informatik.rwth-aachen.de) + + quota (1.51-6): + + * Removed installation of include file (Bug#2600) + + * Do not install quotactl.2 any longer, it's in manpages + +Tue May 14 17:06:09 MET DST 1996 Michael Meskes (meskes@debian.org) + + quota (1.52-1): + + * New upstream version + + * Patched repquota to stop segfaults + + * Corrected quota.c to stop complaining about missing quota.user + files if quota has been disabled + +Fri May 17 11:07:44 MET DST 1996 Michael Meskes (meskes@debian.org) + + quota (1.52-2): + + * Added quota.txt documentation from + ftp.cistron.nl:/pub/People/mvw/quota/doc + + +Mon May 20 09:50:25 MET DST 1996 Michael Meskes (meskes@debian.org) + + quota (1.52-3): + + * Corrected editor path to /bin/ae + +Wed May 29 14:50:00 MET DST 1996 Michael Meskes (meskes@debian.org) + + quota (1.52-4): + + * Added makehole script and applied it to quota files after + quotacheck has been run (Bug#3133) + + * Added dependency upon cpio for makehole + +Thu May 30 09:29:39 MET DST 1996 Michael Meskes (meskes@debian.org) + + quota (1.52-5): + + * Simplified /etc/init.d/quota using idea of Michael Nonnweiler. + + * Removed makehole and used zum instead. + +Wed Jun 19 10:48:33 MET DST 1996 Michael Meskes (meskes@debian.org) + + quota (1.55-1): + + * New upstream version + + * Manpages are now compressed + + * Removed dependency upon perforate + +Fri Jun 28 11:54:57 MET DST 1996 Michael Meskes (meskes@debian.org) + + quota (1.55-2): + + * Changed prerm script to not give an exit value if no quota support + +Sun Jul 7 20:18:40 MET DST 1996 Michael Meskes (meskes@debian.org) + + quota (1.55-3): + + * Changes postrm script to remove quota.user and quota.group files + (Bug#3524) --- quota-3.13.orig/debian/templates +++ quota-3.13/debian/templates @@ -0,0 +1,79 @@ +Template: quota/run_warnquota +Type: boolean +Default: false +_Description: Send daily reminders to users over quota? + Enable this option if you want the warnquota utility to be run daily to + alert users when they are over quota. + +Template: quota/supportphone +Type: string +_Description: Phone support number of the admin: + Enter the phone number a user can call if he needs assistance with his + "over quota" emails. You do not have to enter anything here if you specify + a signature later. + +Template: quota/supportemail +Type: string +_Description: Support email of the admin: + Enter the email address a user can write to if he needs assistance with + his "over quota" emails. You do not have to enter anything here if you + specify a signature later. + +Template: quota/mailfrom +Type: string +_Description: From header of warnquota emails: + The email address you specify here is used as the "From:" field of any + mail sent by the warnquota utility. + +Template: quota/message +Type: string +_Description: Message of warnquota emails: + The text you specify here is used as message in any mail sent by the + warnquota utility. Use "|" to specify a line break. Leave empty if you + want the default message. + +Template: quota/signature +Type: string +_Description: Signature of warnquota emails: + The text you specify here is used as signature in any mail sent by the + warnquota utility. Use "|" to specify a line break. Leave empty if you + want the default signature. + +Template: quota/rquota_setquota +Type: note +_Description: rpc.rquota behaviour changed + The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad + has to be started with option '-S'. + +Template: quota/group_message +Type: string +_Description: Message of warnquota group emails: + The text you specify here is used as message in any mail sent by the + warnquota utility for groups that are over quota. Use "|" to specify a + line break. Leave empty if you want the default message. + +Template: quota/subject +Type: string +_Description: Subject header of warnquota emails: + The text you specify here is used as the "Subject:" field of any + mail sent by the warnquota utility. + +Template: quota/cc +Type: string +_Description: CC header of warnquota emails: + The text you specify here is used as the "CC:" field of any + mail sent by the warnquota utility. + +Template: quota/cc_before +Type: string +_Description: Time slot in which admin gets email: + During this time slot before the end of the grace period admin + will be CCed on all generated emails. + Leave empty to get the whole grace period. + +Template: quota/group_signature +Type: string +_Description: Signature of warnquota group emails: + The text you specify here is used as signature in any mail sent by the + warnquota utility for groups that are over quota. Use "|" to specify a + line break. Leave empty if you want the default message. --- quota-3.13.orig/debian/control +++ quota-3.13/debian/control @@ -0,0 +1,14 @@ +Source: quota +Section: admin +Priority: optional +Maintainer: Michael Meskes +Build-Depends: debhelper (>= 4.1.13), gettext, libwrap0-dev, e2fslibs-dev, po-debconf (>= 0.5.0) +Standards-Version: 3.5.2 + +Package: quota +Architecture: any +Depends: ${shlibs:Depends}, debconf (>= 1.2.9) | debconf-2.0 +Description: implementation of the disk quota system + QUOTA is implemented using the BSD system call interface as the means of + communication with the user level. This is based on the Melbourne quota + system which uses both user and group quota files. --- quota-3.13.orig/debian/quotarpc +++ quota-3.13/debian/quotarpc @@ -0,0 +1,57 @@ +#!/bin/sh +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +NAME=rpc.rquotad +DESC="quota service" + +# names of binaries +DAEMON=/usr/sbin/rpc.rquotad + +# check if quota are enabled +if test -f /etc/exports && grep -q '^[^#]*quota' /etc/fstab && grep -q '^/' /etc/exports; then + need_rquotad=1 +else + need_rquotad=0 +fi + +test -f $DAEMON || exit 0 + +# check if there are some options to rpc.rquotad +test -f /etc/default/quota || exit 0 +. /etc/default/quota + +set -e + +case "$1" in + start) + # The daemon + if [ -x $DAEMON ] && [ $need_rquotad = 1 ]; then + echo -n "Starting $DESC: " + if start-stop-daemon --start --quiet --exec $DAEMON -- $RPCRQUOTADOPTS + then + echo "rpc.rquotad." + else + echo "." + fi + fi + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop --quiet --oknodo --exec $DAEMON + echo "$NAME." + ;; + restart|force-reload) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart". + # + $0 stop + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 --- quota-3.13.orig/debian/quota.patch +++ quota-3.13/debian/quota.patch @@ -0,0 +1,31 @@ +--- edquota.8.orig 2004-02-12 15:33:11.000000000 +0100 ++++ edquota.8 2004-02-12 15:31:44.000000000 +0100 +@@ -76,7 +76,7 @@ + the changes made. + .LP + The editor invoked is +-.BR vi (1) ++.BR editor (1) + unless either the + .SB EDITOR + or the +@@ -147,7 +147,7 @@ + .PD + .SH SEE ALSO + .BR quota (1), +-.BR vi (1), ++.BR editor (1), + .BR quotactl (2), + .BR quotacheck (8), + .BR quotaon (8), +--- quotaops.c.orig 2004-02-12 15:32:58.000000000 +0100 ++++ quotaops.c 2004-02-12 15:31:40.000000000 +0100 +@@ -198,7 +198,7 @@ + setuid(getuid()); + if (!(ed = getenv("VISUAL"))) + if (!(ed = getenv("EDITOR"))) +- ed = _PATH_VI; ++ ed = "/usr/bin/editor"; + i = 0; + ed = actp = sstrdup(ed); + while (actp) { --- quota-3.13.orig/debian/quota.init +++ quota-3.13/debian/quota.init @@ -0,0 +1,115 @@ +#!/bin/sh + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DESC="quota service" + +# names of binaries +check=/sbin/quotacheck +on=/sbin/quotaon +off=/sbin/quotaoff +quotaisoff=/var/lib/quota/off +quotaisnew=/var/lib/quota/new + +ALLFLAGS=-aug +CHECKFLAGS=${ALLFLAGS}m +USERFLAGS=-uc +GROUPFLAGS=-gc + +# create list of all fs with quota +scan_fstab() +{ + tmplist=`grep "^[ ]*[^#].*$1" /etc/fstab | \ + sed -e 's/\(^[[:space:]]*[^[:space:]]*[[:space:]]*[^[:space:]]*[[:space:]]*[^[:space:]]*\).*/\1/g' \ + -e 's/^[[:space:]]*[^[:space:]]*[[:space:]]*//g'` + list=${tmplist:=empty} +} + +set -e + +case "$1" in + start) + # Check if quota already has been enabled + quotaon -ap|grep -q "is off" || exit 0 + + # Check all filesystems if quota is new or wasn't shut down correctly + echo 'Checking quotas...'; + if [ -x $check ] && ( [ ! -f $quotaisoff ] || [ -f $quotaisnew ] ); then + $check $CHECKFLAGS || $check -c $CHECKFLAGS + echo 'done.' + else + # if some filesystems are new check just these filesystems + scan_fstab "usrquota" + set -- $list + + while [ $# -ge 2 ] + do + if [ "$2" != "xfs" ] + then + if test ! -e $1/quota.user && test ! -e $1/aquota.user; then + echo "Warning: user quota not configured in filesystem \`$1.'" + elif test ! -e $1/aquota.user; then + test ! -s $1/quota.user && $check $USERFLAGS $1 + elif test ! -s $1/aquota.user; then + $check $USERFLAGS $1 + fi + fi + shift; shift + done + + scan_fstab "grpquota" + set $list + + while [ $# -ge 2 ] + do + if [ "$2" != "xfs" ] + then + if test ! -e $1/quota.group && test ! -e $1/aquota.group; then + echo "Warning: group quota not configured in filesystem \`$1.'" + elif test ! -e $1/aquota.group; then + test ! -s $1/quota.group && $check $GROUPFLAGS $1 + elif test ! -s $1/aquota.group; then + $check $GROUPFLAGS $1 + fi + fi + shift; shift + done + + echo 'done.' + fi + + # Remove quota-off and quota-new files + rm -f $quotaisoff $quotaisnew + + # Turn quotas on. + if [ -x $on ] + then + echo 'Turning on quotas.'; + $on $ALLFLAGS + fi + ;; + stop) + echo -n 'Turning off quotas' + if [ -x $off ] + then + $off $ALLFLAGS || true + # Create quota-on file + touch $quotaisoff + fi + echo "." + ;; + restart|force-reload) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart". + # + $0 stop + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 --- quota-3.13.orig/debian/po/it.po +++ quota-3.13/debian/po/it.po @@ -0,0 +1,227 @@ +# Italian (it) translation of quota po-debconf +# Copyright (C) 2006 Software in the Public Interest +# This file is distributed under the same license as the quota package. +# Luca Monducci , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: quota italian debconf templates\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2006-04-14 13:46+0200\n" +"Last-Translator: Luca Monducci \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "Invio quotidiano dei promemoria agli utenti che eccedono la quota?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Attivare questa funzione se si desidera che warnquota sia eseguito " +"quotidianamente in modo da avvisare gli utenti quando eccedono la loro " +"quota." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Numero telefonico per contattare l'amministratore:" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Inserire il numero telefonico che gli utenti possono chiamare nel caso " +"abbiano necessità d'assistenza con le email \"quota in eccesso\". Lasciare " +"vuoto questo valore se le informazioni sul contatto sono inserite nella " +"firma del messaggio." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "Indirizzo email per contattare l'amministratore:" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Inserire l'indirizzo email a cui gli utenti possono scrivere nel caso " +"abbiano necessità di assistenza con le email \"quota in eccesso\". Lasciare " +"vuoto questo valore se le informazioni sul contatto sono inserite nella " +"firma del messaggio." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "Campo \"From\" delle email inviate da warnquota:" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"L'indirizzo email specificato viene usato come contenuto del campo \"From:\" " +"in tutte le email inviate da warnquota." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Testo delle email inviate da warnquota:" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"Il testo specificato viene usato come corpo del messaggio in tutte le email " +"inviate da warnquota. Usare il carattere \"|\" per indicare un ritorno a " +"capo. Se si vuole usare il messaggio predefinito lasciare questo valore " +"vuoto." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Firma della email inviate da warnquota:" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"Il testo specificato viene usato come firma in tutte le email inviate da " +"warnquota. Usare il carattere \"|\" per indicare un ritorno a capo. Se si " +"vuole usare il messaggio predefinito lasciare questo valore vuoto." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "Cambiato il comportamento di rpc.rquota" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"Il comportamento di rpc.rquotad è cambiato. Per consentire l'impostazione " +"delle quote rpc.rquotad deve essere avviato con l'opzione \"-S\"." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Testo delle email inviate da warnquota ai gruppi:" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Il testo specificato viene usato come corpo del messaggio in tutte le " +"email inviate da warnquota ai gruppi che eccedono la loro quota. Usare il " +"carattere \"|\" per indicare un ritorno a capo. Se si vuole usare il " +"messaggio predefinito lasciare questo valore vuoto." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails:" +msgstr "Campo \"Subject\" delle email inviate da warnquota:" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"Il testo specificato viene usato come contenuto del campo \"Subject:\" in " +"tutte le email inviate da warnquota." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails:" +msgstr "Campo \"CC\" delle email inviate da warnquota:" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"Il testo specificato viene usato come contenuto del campo \"CC:\" in tutte " +"le email inviate da warnquota." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "Intervallo temporale in cui l'amministratore riceve le email:" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"Durante questo intervallo temporale, prima della fine del grace period, " +"l'amministratore viene messo in CC su tutte le email inviate. Lasciare " +"vuoto questo valore per coprire l'intero grace period." + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Firma della email inviate da warnquota ai gruppi:" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Il testo specificato viene usato come firma in tutte le email inviate da " +"warnquota ai gruppi che eccedono la loro quota. Usare il carattere \"|\" " +"per indicare un ritorno a capo. Se si vuole usare il messaggio predefinito " +"lasciare questo valore vuoto." --- quota-3.13.orig/debian/po/pt_BR.po +++ quota-3.13/debian/po/pt_BR.po @@ -0,0 +1,234 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: quota\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2004-08-07 17:07-0300\n" +"Last-Translator: André Luís Lopes \n" +"Language-Team: Debian-BR Project \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "Enviar lembretes diários para usuários que atingiram sua quota?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Habilite esta opção caso você queira que o utilitário warnquota seja " +"executado diariamente para alertar os usuários quando os mesmos " +"ultrapassarem suas quotas." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Número do telefone de suporte do administrador:" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Informe o número de telefone para o qual um usuário pode ligar caso ele " +"precise de assistência com suas mensagens \"quota atingida (over quota)\". " +"Você não precisa informar nada aqui caso você especifique uma assinatura " +"posteriormente." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "E-mail do administrador para suporte:" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Informe o endereço de e-mail para o qual um usuário pode escrever caso " +"precise de assistência com suas mensagens \"quota atingida (over quota)\". " +"Você não precisa informar nada aqui caso você especifique uma assinatura " +"posteriormente." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "Cabeçalho From: (De: ) dos e-mails do warnquota:" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"O endereço de e-mail especificado aqui será usado como o campo \"From:" +"\" (De: ) de todas as mensagens enviadas pelo utilitário warnquota." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Mensagem dos e-mails do warnquota:" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"O texto especificado aqui será usado como o corpo de todas as mensagens " +"enviadas pelo utilitário warnquota. Utilize \"|\" para especificar uma " +"quebra de linha. Mantenha em branco caso você prefira o texto padrão." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Assinatura dos e-mails do warnquota:" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"O texto especificado aqui será usado como a assinatura de todas as mensagens " +"enviadas pelo utilitário warnquota. Utilize \"|\" para especificar uma " +"quebra de linha. Mantenha em branco caso você prefira o texto padrão." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "Comportamento do rpc.rquota mudou" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"O comportamento do rpc.rquota mudou. Para poder definir quotas o rpc.rquotad " +"precisa ser iniciado com a opção '-S'." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Texto das mensagens de grupo do warnquota:" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"O texto especificado aqui será usado como o texto de todas as mensagens " +"enviadas pelo utilitário warnquota para grupos que estiverem acima de sua " +"quota. Utilize \"|\" para especificar uma quebra de linha. Mantenha em " +"branco caso você prefira usar o texto padrão." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails:" +msgstr "Campo Subject: (Assunto: ) dos e-mails do warnquota:" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"O texto especificado aqui será usado como o campo \"Subject:\" (\"Assunto:\") " +"de todas as mensagens enviadas pelo utilitário warnquota." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails:" +msgstr "Cabeçalho CC: (Cópia Carbono: ) dos e-mails do warnquota:" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"O texto especificado aqui será usado como o campo \"CC:\" (\"Cópia " +"Carbono:\") de todas as mensagens enviadas pelo utilitário warnquota." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "Faixa de tempo em que o administrador recebe mensagens:" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"Durante esta faixa de tempo antes do fim do período de anistia o " +"administrador será copiado em todas as mensagens geradas. Mantenha em " +"branco para que isso funcione durante todo o período de anistia." + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Assinatura das mensagens de grupo do warnquota:" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"O texto especificado aqui será usado como a assinatura de todas as " +"mensagens enviadas pelo utilitário warnquota para grupos que estiverem " +"acima de sua quota definida. Utilize \"|\" para especificar uma quebra " +"de linha. Mantenha em branco caso você prefira usar o texto padrão." --- quota-3.13.orig/debian/po/sv.po +++ quota-3.13/debian/po/sv.po @@ -0,0 +1,168 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# , fuzzy +# +# +msgid "" +msgstr "" +"Project-Id-Version: quota 3.13-3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2005-11-11 17:54+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "Skicka dagliga påminnelser till användare för diskkvot?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Enable this option if you want the warnquota utility to be run daily to alert users when they are over quota." +msgstr "Aktivera denna funktion om du vill att verktyget warnquota ska köras dagligen för att varna användare när du använder mer diskplats än sin kvot." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Telefonnumret till administratören (eller support):" + +#. Type: string +#. Description +#: ../templates:10 +msgid "Enter the phone number a user can call if he needs assistance with his \"over quota\" emails. You do not have to enter anything here if you specify a signature later." +msgstr "Ange telefonnumret som en användare kan ringa om han/hon behöver assistans efter att ha fått e-post angående \"över kvot\". Du behöver inte ange något här om du anger en signatur senare." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "Administratörens e-postaddress för support:" + +#. Type: string +#. Description +#: ../templates:17 +msgid "Enter the email address a user can write to if he needs assistance with his \"over quota\" emails. You do not have to enter anything here if you specify a signature later." +msgstr "Ange e-postaddressen som en användare kan skriva till om han/hon behöver assistans efter att ha fått e-post angående \"över kvot\". Du behöver inte ange något här om du anger en signatur senare." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "Från-rad för e-post från warnquota:" + +#. Type: string +#. Description +#: ../templates:24 +msgid "The email address you specify here is used as the \"From:\" field of any mail sent by the warnquota utility." +msgstr "E-postaddressen du anger här används i \"From:\"-fältet i alla e-postmeddelanden som skickas av verktyget warnquota." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Meddelandet för e-post från warnquota:" + +#. Type: string +#. Description +#: ../templates:30 +msgid "The text you specify here is used as message in any mail sent by the warnquota utility. Use \"|\" to specify a line break. Leave empty if you want the default message." +msgstr "Texten du anger här används som meddelande i alla e-postmeddelanden som skickas av verktyget warnquota. Använd \"|\" för att ange en radbrytning. Lämna blank om du vill använda standardmeddelandet." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Signatur för e-post från warnquota:" + +#. Type: string +#. Description +#: ../templates:37 +msgid "The text you specify here is used as signature in any mail sent by the warnquota utility. Use \"|\" to specify a line break. Leave empty if you want the default signature." +msgstr "Texten du anger här används som signatur i alla e-postmeddelanden som skickas av verktyget warnquota. Använd \"|\" för att ange en radbrytning. Lämna blank om du vill använda standardmeddelandet." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "rpc.rquota har ändrat beteende" + +#. Type: note +#. Description +#: ../templates:44 +msgid "The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad has to be started with option '-S'." +msgstr "Beteendet för rpc.rquotad har ändrats. För att kunna sätta en kvot måste rpc.rquotad startas med flaggan \"-S\"." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Meddelande för grupp-epost från warnquota:" + +#. Type: string +#. Description +#: ../templates:50 +msgid "The text you specify here is used as message in any mail sent by the warnquota utility for groups that are over quota. Use \"|\" to specify a line break. Leave empty if you want the default message." +msgstr "Texten du anger här används som meddelande i alla e-postmeddelanden som skickas av verktyget warnquota till grupper som använder mer än sin kvot. Använd \"|\" för att ange en radbrytning. Lämna blank om du vill använda standardmeddelandet." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails:" +msgstr "Ämne för e-post från warnquota:" + +#. Type: string +#. Description +#: ../templates:57 +msgid "The text you specify here is used as the \"Subject:\" field of any mail sent by the warnquota utility." +msgstr "Texten du anger här används i \"Ämne:\"-fältet i alla e-postmeddelanden som skickas av verktyget warnquota." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails:" +msgstr "CC-rad för e-post från warnquota:" + +#. Type: string +#. Description +#: ../templates:63 +msgid "The text you specify here is used as the \"CC:\" field of any mail sent by the warnquota utility." +msgstr "Texten du anger här används i \"CC:\"-fältet i alla e-postmeddelanden som skickas av verktyget warnquota." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "Tidsperiod i vilken administratören får e-post:" + +#. Type: string +#. Description +#: ../templates:69 +msgid "During this time slot before the end of the grace period admin will be CCed on all generated emails. Leave empty to get the whole grace period." +msgstr "Under denna tidsperiod kommer administratören få kopior på alla genererade e-postmeddelande (via \"CC:\"). Lämna blank för att använda hela tidsperioden." + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Signatur för grupp-epost från warnquota:" + +#. Type: string +#. Description +#: ../templates:76 +msgid "The text you specify here is used as signature in any mail sent by the warnquota utility for groups that are over quota. Use \"|\" to specify a line break. Leave empty if you want the default message." +msgstr "Texten du anger här används som signatur i alla e-postmeddelanden som skickas av verktyget warnquota till grupper som använder mer än sin kvot. Använd \"|\" för att ange en radbrytning. Lämna blank om du vill använda standardmeddelandet." + --- quota-3.13.orig/debian/po/de.po +++ quota-3.13/debian/po/de.po @@ -0,0 +1,232 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2006-05-14 13:35+0200\n" +"Last-Translator: Michael Meskes \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "Schicke eine tägliche Erinnerung an Benutzer über Quota?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Mit Einschalten dieser Option läuft das warnquota Programm täglich, um " +"Benutzer zu alarmieren, dass sie über Quota liegen." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Telefonnummer des Administrators:" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Bitte geben Sie eine Telefonnummer ein, die ein Benutzer anrufen kann, wenn " +"er Hilfe zu seine \"Über Quota\" Email benötigt. Wenn Sie später eine " +"Signatur angeben, können Sie diesen Text leer lassen." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "Email-Adresse des Administrators:" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Bitte geben Sie eine Email-Adresse ein, die ein Benutzer anschreiben kann, " +"wenn er Hilfe zu seine \"Über Quota\" Email benötigt. Wenn Sie später eine " +"Signatur angeben, können Sie diesen Text leer lassen." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "Absender-Adresse für Warnquota-Emails:" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"Diese Email-Adresse wird als Absender jeder Email benutzt, die das Warnquota-" +"Programm verschickt." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Text der Warnquota Emails:" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"Dieser Text wird als Nachricht in jeder Email verwendet, die von Warnquota-" +"Programm verschickt wird. Einen Zeilenumbruch erhalten Sie mit dem Zeichen " +"\"|\". Eine leere Text gibt die Standard-Nachricht." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Signatur der Warnquota Emails:" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"Dieser Text wird als Signatur für jede Email verwendet, die vom Warnquota-" +"Programm verschickt wird. Einen Zeilenumbruch erhalten Sie mit dem Zeichen " +"\"|\". Eine leere Text gibt die Standard-Signatur." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "Geändertes Verhalten von rpc.rquotad" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"Das Verhalten von rpc.rquotad hat sich geändert. Die Bearbeitung von Quota-" +"Informationen funktioniert nur, wenn rpc.rquotad mit der Option '-S' " +"gestartet wird." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Text der Warnquota Gruppen Emails:" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Dieser Text wird als Nachricht in jeder Email verwendet, die von Warnquota-" +"Programm verschickt wird, wenn Benutzergruppen über Quota sind. Einen " +"Zeilenumbruch erhalten Sie mit dem Zeichen \"|\". Eine leere Text gibt die " +"Standard-Nachricht." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails:" +msgstr "Betreff-Angabe für Warnquota-Emails:" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"Diese Betreff-Angabe wird als Betreff jeder Email benutzt, die das Warnquota-" +"Programm verschickt." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails:" +msgstr "Kopie-Adresse für Warnquota-Emails:" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"Diese Email-Adresse bekommt jede Email, die das Warnquota-Programm " +"verschickt, als Kopie." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "Zeitscheibe, in der der Administrator Email bekommt:" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"In der angegebenen Zeit vor Ende der Wohlfallensperiode wird jede Email auch " +"an den Administrator geschickt. Eine leere Eingabe bedeutet die " +"ganze Wohlfallensperiode." + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Signatur der Warnquota Gruppen Emails:" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Dieser Text wird als Signatur für jede Email verwendet, die von Warnquota-" +"Programm verschickt wird, wenn Benutzergruppen über Quota sind. Einen " +"Zeilenumbruch erhalten Sie mit dem Zeichen \"|\". Eine leere Text gibt die " +"Standard-Nachricht." --- quota-3.13.orig/debian/po/nl.po +++ quota-3.13/debian/po/nl.po @@ -0,0 +1,230 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: quota\n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2004-07-04 15:35-0500\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +# Type: boolean +# Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "" +"Verstuur dagelijks een herinnering aan gebruikers die over hun quota heen " +"zijn?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Activeer deze optie indien u elke dag alle gebruikers die over hun quota " +"heen zijn een waarschuwing wilt sturen." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Telefoonnummer van de beheerder:" + +# Type: string +# Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Voer het telefoonnummer in dat gebruikers kunnen bellen voor ondersteuning " +"betreffende 'quota overschreden'-emails. Als u zometeen een ondertekening " +"invoert hoeft u hier niets in te voeren." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "E-mail van de beheerder:" + +# Type: string +# Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Voer het email-adres in dat gebruikers kunnen aanschrijven wanneer ze hulp " +"nodig hebben met 'quota overschreden'-emails. Als u zometeen een " +"ondertekening invoert hoeft u hier niets in te voeren." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "Van veld voor quota-waarschuwings-emails:" + +# Type: string +# Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"Het email-adres dat u hier opgeeft wordt opgegeven als afzender in het " +"'Van:'-veld van alle verstuurde waarschuwings-emails." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Inhoud van quota-waarschuwings-emails:" + +# Type: string +# Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"De tekst die u hier opgeeft vormt de inhoud van verstuurde quota-" +"waarschuwings-emails. Gebruik '|' om een regeleinde aan te geven. Laat dit " +"leeg indien u het standaard bericht wil gebruiken." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Ondertekening van quota-waarschuwings-emails:" + +# Type: string +# Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"De tekst die u hier opgeeft wordt gebruikt als ondertekening van verstuurde " +"quota-waarschuwings-emails. Gebruik '|' om een regeleinde aan te geven. Laat " +"dit leeg indien u het standaard bericht wil gebruiken." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "gedrag van rpc.rquota is veranderd" + +# Type: note +# Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"Het gedrag van rpc.rquotad is veranderd. Om quotas te kunnen instellen dient " +"rpc.rquotad gestart te worden met de optie '-S'." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Inhoud van groepsquota-waarschuwings-emails:" + +# Type: string +# Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"De tekst die u hier opgeeft vormt de inhoud van verstuurde groepsquota-" +"waarschuwings-emails. Gebruik '|' om een regeleinde aan te geven. Laat dit " +"leeg indien u het standaard bericht wil gebruiken." + +# Type: string +# Description +#: ../templates:57 +msgid "Subject header of warnquota emails:" +msgstr "Onderwerp voor quota-waarschuwings-emails:" + +# Type: string +# Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"De hier door u opgegeven tekst wordt gebruikt voor het 'Onderwerp'-veld van " +"alle verstuurde waarschuwings-emails." + +# Type: string +# Description +#: ../templates:63 +msgid "CC header of warnquota emails:" +msgstr "CC-lijst voor quota-waarschuwings-emails:" + +# Type: string +# Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"De hier door u opgegeven tekst wordt gebruikt voor het 'CC'-veld van alle " +"verstuurde waarschuwings-emails." + +# Type: string +# Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "In welk tijdsbestek dient de beheerder email te krijgen:" + +# Type: string +# Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"Gedurende dit tijdsbestek, voor het einde van de overgangsperiode zal elke " +"gegenereerde email de beheerder in CC krijgen. Laat dit leeg om de hele " +"overgangsperiode aan te geven." + +# Type: string +# Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Ondertekening van groepsquota-waarschuwings-emails:" + +# Type: string +# Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"De tekst die u hier opgeeft wordt gebruikt als ondertekening van verstuurde " +"groepsquota-waarschuwings-emails. Gebruik \"|\" om een regeleinde aan te " +"geven. Laat dit leeg indien u het standaard bericht wil gebruiken." --- quota-3.13.orig/debian/po/ru.po +++ quota-3.13/debian/po/ru.po @@ -0,0 +1,191 @@ +# translation of quota_3.12-6_ru.po to Russian +# Yuriy Talakan' , 2005. +# +# +msgid "" +msgstr "" +"Project-Id-Version: quota_3.12-6_ru\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2005-05-21 15:20+1000\n" +"Last-Translator: Yuriy Talakan' \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota" +msgstr "ОтправлÑÑ‚ÑŒ ежедневные Ð½Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñм, превыÑившим квоту" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "Включите Ñту опцию, еÑли вы желаете, чтобы утилита warnquota ежедневно извещала пользователей о том, что они превыÑили квоту." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin" +msgstr "Служебный телефон админиÑтратора" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "Укажите номер телефона, куда пользователь может позвонить в Ñлучае, еÑли ему необходима помощь по поводу пиÑем о превышении квоты. ЕÑли вы зададите подпиÑÑŒ позднее, ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð´ÐµÑÑŒ ничего не пишите." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin" +msgstr "Служебный email админиÑтратора" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "Укажите Ð°Ð´Ñ€ÐµÑ email, на который пользователь может напиÑать в Ñлучае, еÑли ему необходима помощь по поводу пиÑем о превышении квоты. ЕÑли вы зададите подпиÑÑŒ позднее, ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð´ÐµÑÑŒ ничего не пишите." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails" +msgstr "Заголовок From Ð´Ð»Ñ Ñообщений утилиты warnquota" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "ÐÐ´Ñ€ÐµÑ email, который вы здеÑÑŒ укажете, будет иÑпользоватьÑÑ ÐºÐ°Ðº поле \"From:\" Ð´Ð»Ñ Ð²Ñех Ñообщений, отправлÑемых утилитой warnquota." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails" +msgstr "Тело ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ñ‹ warnquota" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "ТекÑÑ‚, который вы здеÑÑŒ укажете, будет иÑпользован как тело ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑех пиÑьмах, отправлÑемых утилитой warnquota. ИÑпользуйте \"|\" Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñ†Ð° Ñтроки. ОÑтавьте поле пуÑтым, еÑли хотите иÑпользовать значение по умолчанию." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails" +msgstr "ПодпиÑÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ñ‹ warnquota" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "ТекÑÑ‚, который вы здеÑÑŒ укажете, будет иÑпользован как подпиÑÑŒ во вÑех пиÑьмах, отправлÑемых утилитой warnquota. ИÑпользуйте \"|\" Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñ†Ð° Ñтроки. ОÑтавьте поле пуÑтым, еÑли хотите иÑпользовать значение по умолчанию." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "ИзменилоÑÑŒ поведение rpc.rquota" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "Поведение rpc.rquota изменилоÑÑŒ. Чтобы получить возможноÑÑ‚ÑŒ уÑтанавливать квоту, rpc.rquotad должен Ñтартовать Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ '-S'." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails" +msgstr "Тело группового ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ñ‹ warnquota" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "ТекÑÑ‚, который вы здеÑÑŒ укажете, будет иÑпользован как тело ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑех пиÑьмах, отправлÑемых утилитой warnquota группам, превыÑившим квоту. ИÑпользуйте \"|\" Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñ†Ð° Ñтроки. ОÑтавьте поле пуÑтым, еÑли хотите иÑпользовать значение по умолчанию." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails" +msgstr "Тема ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ñ‹ warnquota" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "ТекÑÑ‚, который вы здеÑÑŒ укажете, будет иÑпользоватьÑÑ ÐºÐ°Ðº поле \"Subject:\" Ð´Ð»Ñ Ð²Ñех Ñообщений, отправлÑемых утилитой warnquota." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails" +msgstr "ÐšÐ¾Ð¿Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ñ‹ warnquota" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "ТекÑÑ‚, который вы здеÑÑŒ укажете, будет иÑпользоватьÑÑ ÐºÐ°Ðº поле \"CC:\" Ð´Ð»Ñ Ð²Ñех Ñообщений, отправлÑемых утилитой warnquota." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email." +msgstr "Интервал времени, когда админиÑтратор получает ÑообщениÑ" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "Ð’ течение Ñтого интервала времени перед окончанием \"периода милоÑердиÑ\", админиÑтратор будет получать копии вÑех Ñгенерированных Ñообщений. ОÑтавьте пуÑтым Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð²Ñего \"периода милоÑердиÑ\"." + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails" +msgstr "ПодпиÑÑŒ группового ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ñ‹ warnquota" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "ТекÑÑ‚, который вы здеÑÑŒ укажете, будет иÑпользован как подпиÑÑŒ во вÑех пиÑьмах, отправлÑемых утилитой warnquota группам, превыÑившим квоту. ИÑпользуйте \"|\" Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñ†Ð° Ñтроки. ОÑтавьте поле пуÑтым, еÑли хотите иÑпользовать значение по умолчанию." + --- quota-3.13.orig/debian/po/fr.po +++ quota-3.13/debian/po/fr.po @@ -0,0 +1,235 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: quota 3.08-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2004-03-29 20:38+0100\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "" +"Faut-il envoyer des rappels quotidiens aux utilisateurs qui dépassent leurs " +"quota ?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Activez cette option si vous souhaitez que l'utilitaire « warnquota » soit " +"lancé quotidiennement afin d'avertir les utilisateurs qui ont dépassé leurs " +"quota." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Numéro de l'assistance téléphonique :" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Veuillez entrer le numéro de téléphone que peut composer un utilisateur qui " +"a besoin d'aide quand il reçoit un courriel pour dépassement de quota. " +"N'indiquez rien ici si vous prévoyez de l'indiquer dans une signature." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "Adresse électronique de l'assistance :" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Veuillez entrer l'adresse électronique où écrire lorsqu'un utilisateur a " +"besoin d'aide à la réception d'un courriel pour dépassement de quota. " +"N'indiquez rien ici si vous prévoyez de l'indiquer dans une signature." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "Adresse d'expéditeur des courriels envoyés par « warnquota » :" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"L'adresse électronique que vous indiquez ici sera utilisée comme adresse " +"d'expéditeur de tous les courriels envoyés par l'utilitaire « warnquota »." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Message des courriels de « warnquota » :" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"Le texte que vous entrez ici sera utilisé dans tous les courriels envoyés " +"par l'utilitaire « warnquota ». Le caractère « | » indique un retour à la " +"ligne. Laissez ce champ vide pour utiliser le message par défaut." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Signature des courriels de « warnquota » :" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"Le texte que vous entrez ici sera utilisé comme signature de tous les " +"courriels envoyés par l'utilitaire « warnquota ». Le caractère « | » indique " +"un retour à la ligne. Laissez cette valeur vide pour utiliser la signature " +"par défaut." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "Le comportement de « rpc.rquotad » a été modifié" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"Le comportement de rpc.rquotad a été modifié. Afin de pouvoir établir les " +"quota, ce programme doit être lancé avec l'option « -S »." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Message des courriels de « warnquota » pour les groupes :" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Le texte que vous entrez ici sera utilisé dans tous les courriels envoyés " +"par l'utilitaire « warnquota », lors de dépassement de quota par les " +"groupes. Le caractère « | » indique un retour à la ligne. Laissez cette " +"valeur vide pour utiliser le message par défaut." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails:" +msgstr "Sujet des courriels envoyés par « warnquota » :" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"Le texte que vous indiquerez ici sera utilisé comme sujet de tous les " +"courriels envoyés par l'utilitaire « warnquota »." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails:" +msgstr "Adresse en copie des courriels envoyés par « warnquota » :" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"L'adresse électronique que vous indiquez ici sera placée en copie de tous " +"les courriels envoyés par l'utilitaire « warnquota »." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "Durée de la période de mise en copie de l'administrateur :" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"Pendant la durée indiquée avant l'expiration du délai de grâce, " +"l'administrateur sera mis en copie de tous les courriels générés. Laisser ce " +"champ vide pour que la durée soit celle de la période de grâce." + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Signature des courriels de « warnquota » pour les groupes :" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Le texte que vous entrez ici sera utilisé comme signature de tous les " +"courriels envoyés par l'utilitaire « warnquota », lors de dépassement de " +"quota par les groupes. Le caractère « | » indique un retour à la ligne. " +"Laissez cette valeur vide pour utiliser la signature par défaut." --- quota-3.13.orig/debian/po/es.po +++ quota-3.13/debian/po/es.po @@ -0,0 +1,235 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Carlos Alberto Martín Edo , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: quota 3.08-9\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2003-07-13 09:29+0200\n" +"Last-Translator: Carlos Alberto Martín Edo \n" +"Language-Team: Debian L10n Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "" +"Enviar diariamente notificaciones a los usuarios que sobrepasen la cuota?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Active esta opción si quiere que la utilidad warnquota se ejecute " +"diariamente para avisar a los usuarios cuando sobrepasen la cuota." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Número de teléfono de soporte del administrador:" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Introduzca el número de teléfono al que un usuario puede llamar si necesita " +"ayuda con sus correos-e por haber sobrepasado la cuota. No tiene que " +"introducir nada aquí si especifica más tarde una firma." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "Correo electrónico de soporte del administrador:" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Escriba la dirección de correo electrónico a la que puede escribir un " +"usuario si necesita ayuda con sus correos de soprepasar la cuota. No tiene " +"que introducir nada aquí si más tarde especifica una firma." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "From de los correos electrónicos de warnquota:" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"La dirección de correo-e que especifique a continuación se usa como campo " +"\"From:\" de cualquier correo enviado por warnquota." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Mensajes de los correos de warnquota:" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"El texto que especifique aquí se usa como mensaje en cualquier correo " +"enviado por la utilidad warnquota. Use \"|\" para indicar un salto de línea. " +"No escriba nada si prefiere el mensaje por defecto." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Firma de los correos-e de warnquota:" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"El texto que especifique aquí se usa como firma de cualquier correo enviado " +"por la utilidad warnquota. Use \"|\" para especificar un salto de línea. No " +"escriba nada si prefiere la firma por defecto." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "El comportamiento de rpc.rquota ha cambiado" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"Ha cambiado el comportamiento de rpc.rquotad. Para poder fijar la cuota, rpc." +"rquotad tiene que iniciarse con la opción '-S'." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Mensaje de los correos-e de warnquota a grupos:" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"El texto que especifique aquí se usa como mensaje en cualquier correo " +"enviado por warnquota a los grupos que estén por encima de la cuota. Use \"|" +"\" para indicar un salto de línea. No escriba nada si prefiere el mensaje " +"por defecto." + +#. Type: string +#. Description +#: ../templates:57 +#, fuzzy +msgid "Subject header of warnquota emails:" +msgstr "From de los correos electrónicos de warnquota:" + +#. Type: string +#. Description +#: ../templates:57 +#, fuzzy +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"La dirección de correo-e que especifique a continuación se usa como campo " +"\"From:\" de cualquier correo enviado por warnquota." + +#. Type: string +#. Description +#: ../templates:63 +#, fuzzy +msgid "CC header of warnquota emails:" +msgstr "From de los correos electrónicos de warnquota:" + +#. Type: string +#. Description +#: ../templates:63 +#, fuzzy +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"La dirección de correo-e que especifique a continuación se usa como campo " +"\"From:\" de cualquier correo enviado por warnquota." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Firma de mensajes de warnquota a grupos:" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"El texto que indique a continuación se usa como firma en cualquier correo " +"enviado por warnquota a los grupos que estén por encima de la cuota. Use \"|" +"\" para especificar un salto de línea. No escriba nada si prefiere el " +"mensaje por defecto." --- quota-3.13.orig/debian/po/vi.po +++ quota-3.13/debian/po/vi.po @@ -0,0 +1,220 @@ +# Vietnamese translation for quota. +# Copyright © 2005 Free Software Foundation, Inc. +# Phan Vinh Thinh , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: quota_3.12-6-vi\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2005-05-21 09:42+0400\n" +"Last-Translator: Phan Vinh Thinh \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#.Type: boolean +#.Description +#:../templates:4 +msgid "Send daily reminders to users over quota" +msgstr "Hàng ngày gá»­i thông báo vá» vượt giá»›i hạn không gian Ä‘Ä©a tá»›i ngÆ°á»i dùng" + +#.Type: boolean +#.Description +#:../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Chá»n dùng tùy chá»n này nếu ngÆ°á»i dùng muốn tiện tích warnquota chạy " +"hàng ngày để báo cho ngÆ°á»i dùng biết nếu vượt quá giá»›i hạn dùng Ä‘Ä©a." + +#.Type: string +#.Description +#:../templates:10 +msgid "Phone support number of the admin" +msgstr "Số Ä‘iện thoại há»— trợ của nhà quản trị" + +#.Type: string +#.Description +#:../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Nhập số Ä‘iện thoại để ngÆ°á»i dùng có thể gá»i nếu cần vá»›i các thÆ° " +"«vượt quá giá»›i hạn». Không cần nhập gì ở đây nếu chỉ ra má»™t chữ " +"ký ở sau này." + +#.Type: string +#.Description +#:../templates:17 +msgid "Support email of the admin" +msgstr "Äịa chỉ thÆ° há»— trợ của nhà quản trị" + +#.Type: string +#.Description +#:../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Nhập địa chỉ thÆ° để ngÆ°á»i dùng có thể viết nếu cần vá»›i các thÆ° " +"«vượt quá giá»›i hạn». Không cần nhập gì ở đây nếu chỉ ra má»™t chữ " +"ký ở sau này." + +#.Type: string +#.Description +#:../templates:24 +msgid "From header of warnquota emails" +msgstr "Dòng đầu thÆ° «NgÆ°á»i gá»­i» của thÆ° cảnh báo warnquota" + +#.Type: string +#.Description +#:../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"Äịa chỉ thÆ° ở đây dùng làm «NgÆ°á»i gá»­i:» (From) cho bất kỳ thÆ° nào gá»­i " +"bởi tiện ích warnquota." + +#.Type: string +#.Description +#:../templates:30 +msgid "Message of warnquota emails" +msgstr "Ná»™i dung của thÆ° cảnh báo warnquota" + +#.Type: string +#.Description +#:../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"Văn bản nhập ở đây được dùng làm ná»™i dung của thÆ° để tiện ích " +"warnquota gá»­i Ä‘i. Dùng «|» (ký tá»± ống dẫn) để chỉ ra má»™t ngắt dòng. Äể trống " +"nếu muốn dùng thÆ° mặc định." + +#.Type: string +#.Description +#:../templates:37 +msgid "Signature of warnquota emails" +msgstr "Chữ ký của email cảnh báo warnquota" + +#.Type: string +#.Description +#:../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"Văn bản nhập ở đây được dùng làm chữ ký của bất kỳ thÆ° nào do tiện" +"ích warnquota gá»­i Ä‘i. Dùng «|» (ký tá»± ống dẫn) để chỉ ra má»™t ngắt dòng. Äể trống " +"nếu muốn dùng thÆ° mặc định." + +#.Type: note +#.Description +#:../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "Äã thay đổi đặc Ä‘iểm của rpc.rquota" + +#.Type: note +#.Description +#:../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"Äã thay đổi đặc Ä‘iểm của rpc.rquota rồi. Äể có thể đặt giá»›i hạn không gian Ä‘Ä©a, phải chạy rpc.rquotad vá»›i tùy chá»n '-S'." + +#.Type: string +#.Description +#:../templates:50 +msgid "Message of warnquota group emails" +msgstr "Ná»™i dung của thÆ° cho nhóm của warnquota" + +#.Type: string +#.Description +#:../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Văn bản nhập ở đây được dùng làm ná»™i dung của thÆ° để tiện ích " +"warnquota gá»­i tá»›i nhóm ngÆ°á»i dùng vượt quá giá»›i hạn không gian " +"Ä‘Ä©a. Dùng «|» (ký tá»± ống dẫn) để chỉ ra má»™t ngắt dòng. Äể trống nếu muốn dùng " +"thÆ° mặc định." + +#.Type: string +#.Description +#:../templates:57 +msgid "Subject header of warnquota emails" +msgstr "Dòng đầu Chủ Ä‘á» của thÆ° cảnh báo warnquota" + +#.Type: string +#.Description +#:../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"Văn bản Ä‘Æ°a ra ở đây dùng làm «Chủ Ä‘á»Â» cho bất kỳ thÆ° nào gá»­i " +"bởi tiện ích warnquota." + +#.Type: string +#.Description +#:../templates:63 +msgid "CC header of warnquota emails" +msgstr "CC của thÆ° cảnh báo warnquota" + +#.Type: string +#.Description +#:../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"Văn bản Ä‘Æ°a ra ở đây dùng làm «Chép Cho» (CC:) cho bất kỳ thÆ° nào gá»­i " +"bởi tiện ích warnquota." + +#.Type: string +#.Description +#:../templates:69 +msgid "Time slot in which admin gets email." +msgstr "Khoảng thá»i gian nhà quản trị nhận thÆ°." + +#.Type: string +#.Description +#:../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"Trong khoảng thá»i gian trÆ°á»›c khi kết thúc giai Ä‘oạn gia hạn nhà quản trị sẽ nhận được Chép Cho (CC) của tất cả những thÆ° tạo ra. Äể trống để lấy cả giai Ä‘oạn gia hạn." + +#.Type: string +#.Description +#:../templates:76 +msgid "Signature of warnquota group emails" +msgstr "Chữ ký của thÆ° cảnh báo warnquota đến nhóm" + +#.Type: string +#.Description +#:../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Văn bản nhập ở đây được dùng làm chữ ký của thÆ° để tiện ích " +"warnquota gá»­i tá»›i nhóm ngÆ°á»i dùng vượt quá giá»›i hạn không gian " +"Ä‘Ä©a. Dùng «|» (ký tá»± ống dẫn) để chỉ ra má»™t ngắt dòng. Äể trống nếu muốn dùng " +"thÆ° mặc định." --- quota-3.13.orig/debian/po/da.po +++ quota-3.13/debian/po/da.po @@ -0,0 +1,227 @@ +# translation of quota_3.11-4_da.po to Danish +# translation of quota_3.11-2_da.po to Danish +# translation of da.po to Danish +# translation of quota debconf to Danish +# Claus Hindsgaul , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: quota_3.11-4_da\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2004-03-22 21:18+0100\n" +"Last-Translator: Claus Hindsgaul \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "Send daglige pÃ¥mindelser til brugere med overskredne kvoter?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Aktiver dette hvis du vil have værktøjet warnquota til at køre dagligt og " +"advare brugere, nÃ¥r de har overskredet deres kvoter." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Administratorens support-telefonnummer:" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Angiv telefonnummeret, hvortil en bruger kan ringe, hvis han har brug for " +"hjælp med sine \"overskreden kvote\"-breve. Du behøver ikke at skrive noget " +"her, hvis du senere angiver en underskrift." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "Administratorens support e-postadresse:" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Angiv den e-postadresse, en bruger kan skrive til hvis han fÃ¥r brug for " +"hjælp med sine \"overskreden kvota\"-breve. Du behøver ikke at skrive noget " +"her, hvis du senere angiver en signatur." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "Afsenderadresse pÃ¥ warnquota-breve:" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"Den postadresse, du angiver her vil blive brugt som \"From:\"-felt i alle " +"breve, der sendes af warnquota-værktøjet." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Besked i warnquota-breve:" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"Den tekst, du skriver her, bliver brugt som besked i alle breve, der sendes " +"af warnquota-værktøjet. Brug \"|\" til at markere linjeskift. Hvis du vil " +"benytte standardbeskeden, kan du blot undlade at skrive noget her." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Signatur pÃ¥ warnquota-breve:" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"Den tekst, du angiver her, bliver brugt som signatur i alle breve, der " +"sendes af warnquota-værktøjet. Brug \"|\" til at markere linjeskift. Hvis du " +"vil benytte standardbeskeden, kan du blot undlade at skrive noget her." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "rpc.rquotas opførsel er ændret" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"rpc.rquotad har ændret opførsel. For at kunne angive kvoter, skal rpc." +"rquotad startes med tilvalget '-S'." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Besked i warnquotas gruppebreve:" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Den tekst, du skriver her, bliver brugt som besked i alle breve, der sendes " +"af warnquota-værktøjet til grupper, der har overskredet deres kvoter. Brug " +"\"|\" til at markere linjeskift. Hvis du vil benytte standardbeskeden, kan " +"du blot undlade at skrive noget her." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails:" +msgstr "Emnelinje pÃ¥ warnquota-breve:" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"Den tekst, du angiver her, benyttes som \"Subject:\"-linjen i alle breve, " +"der sendes af warnquota-værktøjet." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails:" +msgstr "CC-linje pÃ¥ warnquota-breve:" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"Den tekst, du angiver her, vil blive brugt som \"CC:\"-felt i alle breve, " +"der sendes af warnquota-værktøjet." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "Tidsrum, hvori administratoren fÃ¥r breve:" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"I dette tidsrum før udløbet af eftergivelses-perioden, vil administratoren fÃ¥ en " +"kopi af alle genererede breve. Lad feltet stÃ¥ tomt for at angive hele " +"eftergivelsesperioden." + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Signatur pÃ¥ warnquotas gruppebreve:" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Den tekst, du angiver her, bliver brugt som signatur i alle breve, der " +"sendes af warnquota-værktøjet til grupper, der har overskredet deres kvoter. " +"Brug \"|\" til at markere linjeskift. Hvis du vil benytte standardbeskeden, " +"kan du blot undlade at skrive noget her." + --- quota-3.13.orig/debian/po/ca.po +++ quota-3.13/debian/po/ca.po @@ -0,0 +1,222 @@ +# quota (debconf) translation to Catalan. +# Copyright (C) 2004 Free Software Foundation, Inc. +# Aleix Badia i Bosch , 2004 +# Josep Lladonosa i Capell , 2004 +# +msgid "" +msgstr "" +"Project-Id-Version: quota_3.11-5_templates\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2003-07-20 11:44+0200\n" +"PO-Revision-Date: 2004-03-05 19:46GMT\n" +"Last-Translator: Aleix Badia i Bosch \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota?" +msgstr "Envia recordatoris diàris als usuaris que han sobrepassat la quota?" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Habiliteu l'opció si voleu que la utilitat warnquota s'executi diàriament " +"alertant els usuaris que han sobrepassat la quota." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin:" +msgstr "Número de telèfon de suport de l'administrador:" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Introduïu el número de telèfon on l'usuari pugui trucar si necessita ajuda " +"referent als correus electrònics de \"sobrepassat quota\". Ho podeu deixar " +"buit si posteriorment especifiqueu una signatura." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin:" +msgstr "Correu electrònic de suport de l'administrador:" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Introduïu l'adreça de correu electrònic on l'usuari us pugui escriure si " +"necessita ajuda referent als correus electrònics de \"sobrepassat quota\". " +"Ho podeu deixar en blanc si posteriorment especifiqueu una signatura." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails:" +msgstr "Orígen de la capçalera dels correus electrònics del warnquota:" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"L'adreça que especifiqueu s'utilitza al camp \"From:\" de qualsevol correu " +"que enviï la utilitat warnquota." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails:" +msgstr "Missatge dels correus electrònics del warnquota:" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"El text que especifiqueu s'utilitza com a missatge a qualsevol correu que " +"enviï la utilitat warnquota. Utilitzeu el caràcter \"\" per especificar un " +"salt de línia. Deixeu-ho en blanc si voleu utilitzar el missatge " +"predeterminat." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails:" +msgstr "Signatura dels correus electrònics del warnquota:" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"El text que especifiqueu s'utilitza com a signatura a qualsevol correu que " +"enviï la utilitat warnquota. Utilitzeu el caràcter \"\" per especificar un " +"salt de línia. Deixeu-ho en blanc si voleu utilitzar la signatura " +"predeterminada." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "S'ha modificat el funcionament de l'rpc.rquota" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"S'ha modificat el funcionament de l'rpc.rquota. Per establir la quota, l'rpc." +"rquotad s'ha d'iniciar amb l'opció '-S'." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails:" +msgstr "Missatge dels correus electrònics de grup del warnquota:" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"El text que especifiqueu s'utilitza com a missatge a qualsevol correu que " +"enviï la utilitat warnquota als grups que sobrepassen la quota. Utilitzeu el " +"caràcter \"\" per especificar un salt de línia. Deixeu-ho en blanc si voleu " +"utilitzar el missatge predeterminat." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails:" +msgstr "Assumpte de la capçalera dels correus electrònics del warnquota:" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"El text que especifiqueu s'utilitza al camp \"Subject:\" de qualsevol correu " +"que enviï l'utilitat warnquota." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails:" +msgstr "CC de la capçalera dels correus electrònics del warnquota:" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"El text que especifiqueu s'utilitza al camp \"CC:\" de qualsevol correu que " +"enviï l'utilitat warnquota." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email:" +msgstr "" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails:" +msgstr "Signatura dels correus electrònics de grup del warnquota:" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"El text que especifiqueu s'utilitza com a signatura a qualsevol correu que " +"enviï la utilitat warnquota als grups que sobrepassen la quota. Utilitzeu el " +"caràcter \"\" per especificar un salt de línia. Deixeu-ho en blanc si voleu " +"utilitzar els missatge predeterminat." --- quota-3.13.orig/debian/po/ja.po +++ quota-3.13/debian/po/ja.po @@ -0,0 +1,230 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# +msgid "" +msgstr "" +"Project-Id-Version: quota 3.11-4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2004-03-23 20:02+0900\n" +"Last-Translator: Hideki Yamane \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-JP\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota" +msgstr "quota ¤òĶ²á¤·¤¿¥æ¡¼¥¶¤ËËèÆü¥ê¥Þ¥¤¥ó¥À¤òÁ÷¤ê¤Þ¤¹" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"warnquota ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬ quota ¤òĶ²á¤·¤¿¥æ¡¼¥¶¤ËÂФ·¤ÆËèÆü·Ù¹ð¤òÁ÷¤ë¤è¤¦¤Ë" +"Æ°ºî¤µ¤»¤¿¤¤¾ì¹ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£" + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin" +msgstr "´ÉÍý¼Ô¤Ø¤ÎÌ䤤¹ç¤ï¤»ÅÅÏÃÈÖ¹æ" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"¥æ¡¼¥¶¤¬ \"over quota\" ¥á¡¼¥ë¤ËÂбþ¤¹¤ë¤Î¤Ë¼ê½õ¤±¤¬É¬Íפʾì¹ç¡¢Ì䤤¹ç¤ï¤»¤Ç" +"¤­¤ëÅÅÏÃÈÖ¹æ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£¸å¤Û¤É½ð̾¤Ë¤Æµ­ºÜ¤¹¤ë¾ì¹ç¤Ï¡¢¤³¤³¤Ç²¿¤âÆþÎÏ" +"¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£" + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin" +msgstr "´ÉÍý¼Ô¤Ø¤ÎÌ䤤¹ç¤ï¤»¥á¡¼¥ë¥¢¥É¥ì¥¹" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"¥æ¡¼¥¶¤¬ \"over quota\" ¥á¡¼¥ë¤ËÂбþ¤¹¤ë¤Î¤Ë¼ê½õ¤±¤¬É¬Íפʾì¹ç¡¢Ì䤤¹ç¤ï¤»¤Ç" +"¤­¤ë¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£¸å¤Û¤É½ð̾¤Ë¤Æµ­ºÜ¤¹¤ë¾ì¹ç¤Ï¡¢¤³¤³¤Ç²¿" +"¤âÆþÎϤ¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£" + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails" +msgstr "warnquota ¤¬ quota ¤òĶ²á¤·¤¿¥æ¡¼¥¶¤ØÁ÷ÉÕ¤¹¤ë¥á¡¼¥ë¤Î From ¥Ø¥Ã¥À" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"¤³¤³¤Ç»ØÄꤹ¤ë¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï¡¢warnquota ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤ÆÁ÷¿®¤µ¤ì¤ë" +"¥á¡¼¥ë¤Î \"From:\" ¤Ëµ­ºÜ¤µ¤ì¤Þ¤¹¡£" + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails" +msgstr "warnquota ¤¬ quota ¤òĶ²á¤·¤¿¥æ¡¼¥¶¤ØÁ÷ÉÕ¤¹¤ë¥á¡¼¥ë¤ÎËÜʸ" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"¤³¤³¤Ç»ØÄꤷ¤¿Ê¸¾Ï¤Ï warnquota ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤ÆÁ÷ÉÕ¤µ¤ì¤ë¥á¡¼¥ë¤ÎËÜʸ¤Ë" +"»ÈÍѤµ¤ì¤Þ¤¹¡£²þ¹Ô¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï \"|\" ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£É¸½à¤Î¥á¥Ã¥»¡¼¥¸" +"¤òÍøÍѤ·¤¿¤¤¾ì¹ç¤Ï¶õ¤Î¤Þ¤Þ¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£" + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails" +msgstr "warnquota quota ¤òĶ²á¤·¤¿¥æ¡¼¥¶¤ØÁ÷ÉÕ¤¹¤ë¥á¡¼¥ë¤Î½ð̾" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"¤³¤³¤Ç»ØÄꤷ¤¿Ê¸¾Ï¤Ï warnquota ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤ÆÁ÷ÉÕ¤µ¤ì¤ë¥á¡¼¥ë¤Î½ð̾¤Ë" +"»ÈÍѤµ¤ì¤Þ¤¹¡£²þ¹Ô¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï \"|\" ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£É¸½à¤Î½ð̾¤òÍøÍÑ" +"¤·¤¿¤¤¾ì¹ç¤Ï¶õ¤Î¤Þ¤Þ¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£" + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "rpc.rquota ¤ÎµóÆ°¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"rpc.rquota ¤ÎµóÆ°¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿¡£quota ¤òÀßÄꤹ¤ë°Ù¤Ë¤Ï rpc.rquotad ¤Ë '-" +"S' ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æµ¯Æ°¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£" + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails" +msgstr "warnquota ¤¬ quota ¤òĶ²á¤·¤¿¥°¥ë¡¼¥×¤ØÁ÷ÉÕ¤¹¤ë¥á¡¼¥ë¤ÎËÜʸ" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"¤³¤³¤Ç»ØÄꤷ¤¿Ê¸¾Ï¤Ï¡¢quota ¤òĶ²á¤·¤¿¥°¥ë¡¼¥×¤ËÂФ· warnquota ¥æ¡¼¥Æ¥£¥ê¥Æ¥£" +"¤Ë¤è¤Ã¤ÆÁ÷ÉÕ¤µ¤ì¤ë¥á¡¼¥ë¤ÎËÜʸ¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£²þ¹Ô¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï \"|\" ¤ò»È" +"ÍѤ·¤Æ¤¯¤À¤µ¤¤¡£É¸½à¤Î¥á¥Ã¥»¡¼¥¸¤òÍøÍѤ·¤¿¤¤¾ì¹ç¤Ï¶õ¤Î¤Þ¤Þ¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£" + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails" +msgstr "warnquota ¤¬Á÷ÉÕ¤¹¤ë¥á¡¼¥ë¤Î Subject ¥Ø¥Ã¥À" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"¤³¤³¤Ç»ØÄꤷ¤¿¥Æ¥­¥¹¥È¤Ï¡¢warnquota ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤ÆÁ÷¿®¤µ¤ì¤ë¤¢¤é¤æ¤ë" +"¥á¡¼¥ë¤Î \"Subject:\" ¥Õ¥£¡¼¥ë¥É¤È¤·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£" + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails" +msgstr "warnquota ¤¬Á÷ÉÕ¤¹¤ë¥á¡¼¥ë¤Î CC ¥Ø¥Ã¥À" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"¤³¤³¤Ç»ØÄꤷ¤¿¥Æ¥­¥¹¥È¤Ï¡¢warnquota ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤è¤Ã¤ÆÁ÷¿®¤µ¤ì¤ë¤¢¤é¤æ¤ë" +"¥á¡¼¥ë¤Î \"CC:\" ¥Õ¥£¡¼¥ë¥É¤È¤·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£" + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email." +msgstr "´ÉÍý¼Ô¤¬¥á¡¼¥ë¤ò¼õ¤±¼è¤ë´ü´Ö¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"ͱͽ´ü´Ö (grace period) ½ªÎ»Á°¤Î¤³¤³¤Ç»ØÄꤷ¤¿´ü´ÖÃæ¤Ï¡¢À¸À®¤µ¤ì¤¿Á´¥á¡¼¥ë¤¬" +"´ÉÍý¼Ô°¸¤Ë CC ¤µ¤ì¤Þ¤¹¡£Í±Í½´ü´ÖÃ椺¤Ã¤È¥á¡¼¥ë¤ò¼õ¤±¼è¤ê¤¿¤¤¾ì¹ç¤Ï¶õ¤Î¤Þ¤Þ¤Ë" +"¤·¤Æ¤¯¤À¤µ¤¤¡£" + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails" +msgstr "warnquota ¤¬ quota ¤òĶ²á¤·¤¿¥°¥ë¡¼¥×¤ØÁ÷ÉÕ¤¹¤ë¥á¡¼¥ë¤Î½ð̾" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"¤³¤³¤Ç»ØÄꤷ¤¿Ê¸¾Ï¤Ï¡¢quota ¤òĶ²á¤·¤¿¥°¥ë¡¼¥×¤ËÂФ· warnquota ¥æ¡¼¥Æ¥£¥ê¥Æ¥£" +"¤Ë¤è¤Ã¤ÆÁ÷ÉÕ¤µ¤ì¤ë¥á¡¼¥ë¤Î½ð̾¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£²þ¹Ô¤ò»ØÄꤹ¤ë¾ì¹ç¤Ï \"|\" ¤ò»È" +"ÍѤ·¤Æ¤¯¤À¤µ¤¤¡£É¸½à¤Î¥á¥Ã¥»¡¼¥¸¤òÍøÍѤ·¤¿¤¤¾ì¹ç¤Ï¶õ¤Î¤Þ¤Þ¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£" --- quota-3.13.orig/debian/po/cs.po +++ quota-3.13/debian/po/cs.po @@ -0,0 +1,229 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: quota\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: 2004-05-29 16:54+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota" +msgstr "Posílat denní upozornìní u¾ivatelùm s pøekroèenou kvótou" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" +"Tuto mo¾nost povolte, pokud chcete, aby program warnquota dennì zasílal " +"upozornìní u¾ivatelùm, kteøí pøekroèili svou diskovou kvótu." + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin" +msgstr "Telefonní èíslo správce" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Zadejte telefonní èíslo, na které mohou volat u¾ivatelé, je¾ potøebují pomoc " +"s po¹tou o \"pøekroèené kvótì\". Pokud pozdìji zadáte podpis, nemusíte zde " +"nic uvádìt." + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin" +msgstr "Emailová adresa správce" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" +"Zadejte emailovou adresu, na kterou mohou psát u¾ivatelé, je¾ potøebují " +"pomoc s po¹tou o \"pøekroèené kvótì\". Pokud pozdìji zadáte podpis, nemusíte " +"zde nic uvádìt." + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails" +msgstr "Hlavièka 'From' emailù z programu warnquota" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" +"Emailová adresa, kterou zde zadáte, se objeví v hlavièce 'From:' u ve¹keré " +"po¹ty, kterou bude zasílat program warnquota." + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails" +msgstr "Obsah varovných emailù z programu warnquota" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" +"Text, který zde zadáte, se pou¾ije jako tìlo zprávy v¹ech emailù zaslaných " +"programem warnquota. Nový øádek mù¾ete zadat znakem \"|\". Pokud chcete " +"ponechat standardní zprávu, nic nezadávejte." + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails" +msgstr "Podpis emailù z programu warnquota" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" +"Text, který zde zadáte, se pou¾ije jako podpis ve¹keré po¹ty zaslané " +"programem warnquota. Nový øádek mù¾ete zadat znakem \"|\". Pokud chcete " +"ponechat standardní podpis, nic nezadávejte." + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "Chování rpc.rquota se zmìnilo" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" +"Chování rpc.rquota se zmìnilo. Abyste mohli nastavovat kvóty, musíte spustit " +"rpc.rquota s parametrem '-S'." + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails" +msgstr "Obsah skupinových emailù z programu warnquota" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Text, který zde zadáte, se pou¾ije jako tìlo zprávy v¹ech emailù zaslaných " +"skupinám programem warnquota. Nový øádek mù¾ete zadat znakem \"|\". Pokud " +"chcete ponechat standardní zprávu, nic nezadávejte." + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails" +msgstr "Hlavièka 'Subject' emailù z programu warnquota" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" +"Text, který zde zadáte, se objeví v pøedmìtu u ve¹keré po¹ty, kterou bude " +"zasílat program warnquota." + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails" +msgstr "Hlavièka 'CC' emailù z programu warnquota" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" +"Emailová adresa, kterou zde zadáte, se pou¾ije v hlavièce 'CC:' u ve¹keré " +"po¹ty, kterou bude zasílat program warnquota." + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email." +msgstr "Èasové okno, ve kterém administrátor obdr¾í po¹tu." + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" +"Administrátor bude dostávat kopie ve¹keré vygenerované po¹ty, která spadá " +"do období od (konec_lhùty - okno) do konec_lhùty. Nezadáte-li nic, obdr¾íte " +"celou dobu." + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails" +msgstr "Podpis skupinových emailù z programu warnquota" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" +"Text, který zde zadáte, se pou¾ije jako podpis v¹ech emailù zaslaných " +"skupinám programem warnquota. Nový øádek mù¾ete zadat znakem \"|\". Pokud " +"chcete ponechat standardní podpis, nic nezadávejte." --- quota-3.13.orig/debian/po/templates.pot +++ quota-3.13/debian/po/templates.pot @@ -0,0 +1,199 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-03-20 09:44+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "Send daily reminders to users over quota" +msgstr "" + +#. Type: boolean +#. Description +#: ../templates:4 +msgid "" +"Enable this option if you want the warnquota utility to be run daily to " +"alert users when they are over quota." +msgstr "" + +#. Type: string +#. Description +#: ../templates:10 +msgid "Phone support number of the admin" +msgstr "" + +#. Type: string +#. Description +#: ../templates:10 +msgid "" +"Enter the phone number a user can call if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" + +#. Type: string +#. Description +#: ../templates:17 +msgid "Support email of the admin" +msgstr "" + +#. Type: string +#. Description +#: ../templates:17 +msgid "" +"Enter the email address a user can write to if he needs assistance with his " +"\"over quota\" emails. You do not have to enter anything here if you specify " +"a signature later." +msgstr "" + +#. Type: string +#. Description +#: ../templates:24 +msgid "From header of warnquota emails" +msgstr "" + +#. Type: string +#. Description +#: ../templates:24 +msgid "" +"The email address you specify here is used as the \"From:\" field of any " +"mail sent by the warnquota utility." +msgstr "" + +#. Type: string +#. Description +#: ../templates:30 +msgid "Message of warnquota emails" +msgstr "" + +#. Type: string +#. Description +#: ../templates:30 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default message." +msgstr "" + +#. Type: string +#. Description +#: ../templates:37 +msgid "Signature of warnquota emails" +msgstr "" + +#. Type: string +#. Description +#: ../templates:37 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility. Use \"|\" to specify a line break. Leave empty if you " +"want the default signature." +msgstr "" + +#. Type: note +#. Description +#: ../templates:44 +msgid "rpc.rquota behaviour changed" +msgstr "" + +#. Type: note +#. Description +#: ../templates:44 +msgid "" +"The behaviour of rpc.rquotad changed. To be able to set quota rpc.rquotad " +"has to be started with option '-S'." +msgstr "" + +#. Type: string +#. Description +#: ../templates:50 +msgid "Message of warnquota group emails" +msgstr "" + +#. Type: string +#. Description +#: ../templates:50 +msgid "" +"The text you specify here is used as message in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" + +#. Type: string +#. Description +#: ../templates:57 +msgid "Subject header of warnquota emails" +msgstr "" + +#. Type: string +#. Description +#: ../templates:57 +msgid "" +"The text you specify here is used as the \"Subject:\" field of any mail sent " +"by the warnquota utility." +msgstr "" + +#. Type: string +#. Description +#: ../templates:63 +msgid "CC header of warnquota emails" +msgstr "" + +#. Type: string +#. Description +#: ../templates:63 +msgid "" +"The text you specify here is used as the \"CC:\" field of any mail sent by " +"the warnquota utility." +msgstr "" + +#. Type: string +#. Description +#: ../templates:69 +msgid "Time slot in which admin gets email." +msgstr "" + +#. Type: string +#. Description +#: ../templates:69 +msgid "" +"During this time slot before the end of the grace period admin will be CCed " +"on all generated emails. Leave empty to get the whole grace period." +msgstr "" + +#. Type: string +#. Description +#: ../templates:76 +msgid "Signature of warnquota group emails" +msgstr "" + +#. Type: string +#. Description +#: ../templates:76 +msgid "" +"The text you specify here is used as signature in any mail sent by the " +"warnquota utility for groups that are over quota. Use \"|\" to specify a " +"line break. Leave empty if you want the default message." +msgstr "" --- quota-3.13.orig/debian/po/POTFILES.in +++ quota-3.13/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] templates --- quota-3.13.orig/debian/copyright +++ quota-3.13/debian/copyright @@ -0,0 +1,26 @@ +This package was debianized by Michael Meskes on +Mon, 20 Mar 2000 14:12:42 +0100. + +It was downloaded from http://www.sf.net/projects/linuxquota/ + +Upstream Authors: Marco van Wieringen + Jan Kara + +Copyright: + + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License (Version 2.0) can be found in /usr/share/common-licenses/GPL'. + +Exceptions: + +In quotaio_xfs.h, the license is GNU GPL version 2 only. + +For some files the license is the BSD license, with the advertising +clause removed retroactively. + --- quota-3.13.orig/debian/quota.default +++ quota-3.13/debian/quota.default @@ -0,0 +1,5 @@ +# Set to "true" if warnquota should be run in cron.daily +run_warnquota= + +# Add options to rpc.rquotad here +RPCRQUOTADOPTS= --- quota-3.13.orig/debian/README.Debian +++ quota-3.13/debian/README.Debian @@ -0,0 +1,20 @@ +quota for Debian +---------------------- + +Quick install hint: + +To run diskquotas you need to have the quota option enabled in the kernel +config (usually done, if you use a kernel from the Debian distribution). +AND you have to use the usrquota/grpquota options in /etc/fstab +for the filesystems you wish to have quota'd. + +Heiko Schlittermann + +If you run quotacheck to create a quota file, make sure to specify option '-c' +or else quotacheck will not create a new file. Note, however, that quota by +default tries to use the newest format it knows. Stock 2.4 still uses the old +format! So if you want/have to use an older one you should make sure that +either the appropriate file exists by creating an empty file or you specify the +correct format as parameter to quotacheck. + +Michael Meskes --- quota-3.13.orig/debian/prerm +++ quota-3.13/debian/prerm @@ -0,0 +1,41 @@ +#! /bin/sh +# prerm script for quota +# +# see: dh_installdeb(1) + +# summary of how this script can be called: +# * `remove' +# * `upgrade' +# * `failed-upgrade' +# * `remove' `in-favour' +# * `deconfigure' `in-favour' +# `removing' +# +# for details, see /usr/doc/packaging-manual/ + +case "$1" in + remove|deconfigure) + #DEBHELPER# + [ -f /var/lib/quota/off ] && rm -f /var/lib/quota/off + [ -f /var/lib/quota/new ] && rm -f /var/lib/quota/new + ;; + upgrade) + if [ -L /usr/doc/quota ]; then + rm -f /usr/doc/quota + fi + + # stop quota server + start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/rpc.rquotad + ;; + failed-upgrade) + if [ -L /usr/doc/quota ]; then + rm -f /usr/doc/quota + fi + ;; + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +exit 0 --- quota-3.13.orig/debian/quotagrpadmins +++ quota-3.13/debian/quotagrpadmins @@ -0,0 +1,8 @@ +# +# This is a sample groupadmins file (/etc/quotagrpadmins) +# +# Comments begin with hash in the beginning of the line + +# In this file you specify users responsible for space used by the group +users: root + --- quota-3.13.orig/debian/dirs +++ quota-3.13/debian/dirs @@ -0,0 +1,11 @@ +usr/bin +usr/sbin +sbin +etc/init.d +usr/share/man/man1 +usr/share/man/man2 +usr/share/man/man3 +usr/share/man/man4 +usr/share/man/man8 +usr/include/rpcsvc +var/lib/quota --- quota-3.13.orig/debian/cron.daily +++ quota-3.13/debian/cron.daily @@ -0,0 +1,17 @@ +#! /bin/sh + +# check if quota package is available +test -x /usr/sbin/warnquota || exit 0 + +# check if warnquota run is configured +test -f /etc/default/quota || exit 0 +. /etc/default/quota + +if [ "$run_warnquota" = "true" ]; then + # check if quotas are enabled + if grep -q '^[^#]*quota' /etc/fstab; then + /usr/sbin/warnquota + fi +fi + +exit 0 --- quota-3.13.orig/debian/postrm +++ quota-3.13/debian/postrm @@ -0,0 +1,38 @@ +#! /bin/sh +# postrm script for quota +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' overwrit>r> +# for details, see /usr/doc/packaging-manual/ + +case "$1" in + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + purge) + awk '/usrquota/ { print $2"/quota.user"}' /etc/mtab | xargs /bin/rm -vf + awk '/grpquota/ { print $2"/quota.group"}' /etc/mtab | xargs /bin/rm -vf + rm -f /etc/default/quota + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 0 + +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# --- quota-3.13.orig/debian/preinst +++ quota-3.13/debian/preinst @@ -0,0 +1,33 @@ +#! /bin/sh +# preinst script for quota +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' + +case "$1" in + upgrade) + echo "$2" > /var/run/quota.upgrade + ;; + + install) + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +exit 0 + + --- quota-3.13.orig/debian/warnquota.conf +++ quota-3.13/debian/warnquota.conf @@ -0,0 +1,12 @@ +; ; and # type comments are allowed +# and even blank lines + +# values can be quoted: +MAIL_CMD = "/usr/sbin/sendmail -t" +FROM = "root@localhost" +# but they don't have to be: +SUBJECT = Over quota +CC_TO = "root@localhost" +SUPPORT = "root@localhost" +PHONE = "" +# --- quota-3.13.orig/debian/quotatab +++ quota-3.13/debian/quotatab @@ -0,0 +1,18 @@ +# This is an example quotatab file +# +# This file is used as a translation for device names, so a warnquota message +# makes sense to the user. +# +# syntax is as follows: +# +# colon ':' is used to specify the start of the substituted text +# pipe '|' is used to specify a line break +# +# device:substituted text +# device:text on line 1|test on line2 +# +# For instance if you would like to have warnquota tell the user their +# 'mailspool' is full instead of '/dev/hdb1' is full, use the following +# example. +# +# /dev/hdb1:mailspool