-Notes on the Free Translation Project
-*************************************
+1 Notes on the Free Translation Project
+***************************************
- Free software is going international! The Free Translation Project
-is a way to get maintainers of free software, translators, and users all
-together, so that will gradually become able to speak many languages.
-A few packages already provide translations for their messages.
+Free software is going international! The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages. A few packages already provide translations for their
+messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
-work at translations should contact the appropriate team.
+work on translations can contact the appropriate team.
When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
-Quick configuration advice
-==========================
+1.1 Quick configuration advice
+==============================
- If you want to exploit the full power of internationalization, you
+If you want to exploit the full power of internationalization, you
should configure it using
./configure --with-included-gettext
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
-INSTALL Matters
-===============
+1.2 INSTALL Matters
+===================
- Some packages are "localizable" when properly installed; the
-programs they contain can be made to speak your own native language.
-Most such packages use GNU `gettext'. Other packages have their own
-ways to internationalization, predating GNU `gettext'.
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language. Most such
+packages use GNU `gettext'. Other packages have their own ways to
+internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system already
-provides the GNU `gettext' functions. If not, the GNU `gettext' own
-library will be used. This library is wholly contained within this
-package, usually in the `intl/' subdirectory, so prior installation of
-the GNU `gettext' package is _not_ required. Installers may use
-special options at configuration time for changing the default
-behaviour. The commands:
+provides the GNU `gettext' functions. If not, the included GNU
+`gettext' library will be used. This library is wholly contained
+within this package, usually in the `intl/' subdirectory, so prior
+installation of the GNU `gettext' package is _not_ required.
+Installers may use special options at configuration time for changing
+the default behaviour. The commands:
./configure --with-included-gettext
./configure --disable-nls
-will respectively bypass any pre-existing `gettext' to use the
+will, respectively, bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
-will decide to use this. This might be not what is desirable. You
-should use the more recent version of the GNU `gettext' library. I.e.
-if the file `intl/VERSION' shows that the library which comes with this
-package is more recent, you should use
+will decide to use this. This might not be desirable. You should use
+the more recent version of the GNU `gettext' library. I.e. if the file
+`intl/VERSION' shows that the library which comes with this package is
+more recent, you should use
./configure --with-included-gettext
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.
- Internationalized packages have usually many `po/LL.po' files, where
+ Internationalized packages usually have many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
-Using This Package
-==================
+1.3 Using This Package
+======================
- As a user, if your language has been installed for this package, you
+As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
and `CC' is an ISO 3166 two-letter country code. For example, let's
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+ Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003). During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect. For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.
-Translating Teams
-=================
+1.4 Translating Teams
+=====================
- For the Free Translation Project to be a success, we need interested
+For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list. The up-to-date list of
the terminology in use. Proven linguistic skill are praised more than
programming skill, here.
-Available Packages
-==================
+1.5 Available Packages
+======================
- Languages are not equally supported in all packages. The following
-matrix shows the current state of internationalization, as of May 2003.
-The matrix shows, in regard of each package, for which languages PO
-files have been submitted to translation coordination, with a
+Languages are not equally supported in all packages. The following
+matrix shows the current state of internationalization, as of March
+2005. The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
- Ready PO files am az be bg ca cs da de el en en_GB eo es
- +-------------------------------------------+
- a2ps | [] [] [] [] |
- aegis | () |
- anubis | |
- ap-utils | |
- bash | [] [] [] |
- batchelor | |
- bfd | [] [] |
- binutils | [] [] |
- bison | [] [] [] |
- bluez-pin | [] [] |
- clisp | |
- clisp | [] [] [] |
- coreutils | [] [] [] [] |
- cpio | [] [] [] |
- darkstat | () [] |
- diffutils | [] [] [] [] [] [] [] |
- e2fsprogs | [] [] |
- enscript | [] [] [] [] |
- error | [] [] [] [] [] |
- fetchmail | [] () [] [] [] [] |
- fileutils | [] [] [] |
- findutils | [] [] [] [] [] [] |
- flex | [] [] [] [] |
- gas | [] |
- gawk | [] [] [] [] |
- gcal | [] |
- gcc | [] [] |
- gettext | [] [] [] [] [] |
- gettext-runtime | [] [] [] [] [] |
- gettext-tools | [] [] |
- gimp-print | [] [] [] [] [] |
- gliv | |
- glunarclock | [] [] [] |
- gnucash | () [] |
- gnucash-glossary | [] () [] |
- gnupg | [] () [] [] [] [] |
- gpe-calendar | [] |
- gpe-conf | [] |
- gpe-contacts | [] |
- gpe-edit | |
- gpe-login | [] |
- gpe-ownerinfo | [] |
- gpe-sketchbook | [] |
- gpe-timesheet | |
- gpe-today | [] |
- gpe-todo | [] |
- gphoto2 | [] [] [] [] |
- gprof | [] [] |
- gpsdrive | () () () |
- grep | [] [] [] [] [] |
- gretl | [] |
- hello | [] [] [] [] [] [] |
- id-utils | [] [] |
- indent | [] [] [] [] |
- jpilot | [] [] [] [] |
- jwhois | [] |
- kbd | [] [] [] [] [] |
- ld | [] [] |
- libc | [] [] [] [] [] [] |
- libgpewidget | [] |
- libiconv | [] [] [] [] [] |
- lifelines | [] () |
- lilypond | [] |
- lingoteach | |
- lingoteach_lessons | () () |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] |
- mailutils | [] [] |
- make | [] [] [] |
- man-db | [] () [] [] () |
- mysecretdiary | [] [] [] |
- nano | [] () [] [] [] |
- nano_1_0 | [] () [] [] [] |
- opcodes | [] [] |
- parted | [] [] [] [] [] |
- ptx | [] [] [] [] [] |
- python | |
- radius | |
- recode | [] [] [] [] [] [] |
- screem | |
- sed | [] [] [] [] [] |
- sh-utils | [] [] [] |
- sharutils | [] [] [] [] [] [] |
- sketch | [] () [] |
- soundtracker | [] [] [] |
- sp | [] |
- tar | [] [] [] [] |
- texinfo | [] [] [] [] |
- textutils | [] [] [] [] |
- tin | () () |
- util-linux | [] [] [] [] [] |
- vorbis-tools | [] [] [] |
- wastesedge | () |
- wdiff | [] [] [] [] |
- wget | [] [] [] [] [] [] [] |
- xchat | [] [] [] |
- xpad | |
- +-------------------------------------------+
- am az be bg ca cs da de el en en_GB eo es
- 0 1 4 2 31 17 54 60 14 1 4 12 56
-
- et fa fi fr ga gl he hr hu id it ja ko
- +----------------------------------------+
- a2ps | [] [] [] () () |
- aegis | |
- anubis | [] |
- ap-utils | [] |
- bash | [] [] |
- batchelor | [] |
- bfd | [] [] |
- binutils | [] [] |
- bison | [] [] [] [] |
- bluez-pin | [] [] [] [] |
- clisp | |
- clisp | [] |
- coreutils | [] [] [] [] |
- cpio | [] [] [] [] |
- darkstat | () [] [] [] |
- diffutils | [] [] [] [] [] [] [] |
- e2fsprogs | |
- enscript | [] [] |
- error | [] [] [] [] |
- fetchmail | [] |
- fileutils | [] [] [] [] [] |
- findutils | [] [] [] [] [] [] [] [] [] [] [] |
- flex | [] [] |
- gas | [] |
- gawk | [] [] |
- gcal | [] |
- gcc | [] |
- gettext | [] [] [] |
- gettext-runtime | [] [] [] [] |
- gettext-tools | [] |
- gimp-print | [] [] |
- gliv | () |
- glunarclock | [] [] [] [] |
- gnucash | [] |
- gnucash-glossary | [] |
- gnupg | [] [] [] [] [] [] [] |
- gpe-calendar | [] |
- gpe-conf | |
- gpe-contacts | [] |
- gpe-edit | [] [] |
- gpe-login | [] |
- gpe-ownerinfo | [] [] [] |
- gpe-sketchbook | [] |
- gpe-timesheet | [] [] [] |
- gpe-today | [] [] |
- gpe-todo | [] [] |
- gphoto2 | [] [] [] |
- gprof | [] [] |
- gpsdrive | () [] () () |
- grep | [] [] [] [] [] [] [] [] [] [] [] |
- gretl | [] |
- hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
- id-utils | [] [] [] |
- indent | [] [] [] [] [] [] [] [] |
- jpilot | [] () |
- jwhois | [] [] [] [] |
- kbd | [] |
- ld | [] |
- libc | [] [] [] [] [] [] |
- libgpewidget | [] [] [] |
- libiconv | [] [] [] [] [] [] [] [] |
- lifelines | () |
- lilypond | [] |
- lingoteach | [] [] |
- lingoteach_lessons | |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] |
- mailutils | |
- make | [] [] [] [] [] [] |
- man-db | [] () () |
- mysecretdiary | [] [] |
- nano | [] [] [] [] |
- nano_1_0 | [] [] [] [] |
- opcodes | [] [] |
- parted | [] [] [] |
- ptx | [] [] [] [] [] [] [] |
- python | |
- radius | |
- recode | [] [] [] [] [] [] |
- screem | |
- sed | [] [] [] [] [] [] [] [] |
- sh-utils | [] [] [] [] [] [] |
- sharutils | [] [] [] [] [] |
- sketch | [] |
- soundtracker | [] [] [] |
- sp | [] () |
- tar | [] [] [] [] [] [] [] [] [] |
- texinfo | [] [] [] [] |
- textutils | [] [] [] [] [] |
- tin | [] () |
- util-linux | [] [] [] [] () [] |
- vorbis-tools | [] |
- wastesedge | () |
- wdiff | [] [] [] [] [] |
- wget | [] [] [] [] [] [] [] [] |
- xchat | [] [] [] |
- xpad | |
- +----------------------------------------+
- et fa fi fr ga gl he hr hu id it ja ko
- 20 1 15 73 14 24 8 10 30 31 19 31 9
-
- lg lt lv ms nb nl nn no pl pt pt_BR ro
- +----------------------------------------+
- a2ps | [] [] () () () [] [] |
- aegis | () |
- anubis | [] [] |
- ap-utils | () |
- bash | [] |
- batchelor | |
- bfd | |
- binutils | |
- bison | [] [] [] [] |
- bluez-pin | [] |
- clisp | |
- clisp | [] |
- coreutils | [] |
- cpio | [] [] [] |
- darkstat | [] [] [] [] |
- diffutils | [] [] [] |
- e2fsprogs | |
- enscript | [] [] |
- error | [] [] |
- fetchmail | () () |
- fileutils | [] |
- findutils | [] [] [] [] |
- flex | [] |
- gas | |
- gawk | [] |
- gcal | |
- gcc | |
- gettext | [] |
- gettext-runtime | [] |
- gettext-tools | |
- gimp-print | [] |
- gliv | [] |
- glunarclock | [] |
- gnucash | |
- gnucash-glossary | [] [] |
- gnupg | |
- gpe-calendar | [] [] |
- gpe-conf | [] [] |
- gpe-contacts | [] |
- gpe-edit | [] [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] [] |
- gpe-sketchbook | [] [] |
- gpe-timesheet | [] [] |
- gpe-today | [] [] |
- gpe-todo | [] [] |
- gphoto2 | |
- gprof | [] |
- gpsdrive | () () () |
- grep | [] [] [] [] |
- gretl | |
- hello | [] [] [] [] [] [] [] [] [] |
- id-utils | [] [] [] |
- indent | [] [] [] |
- jpilot | () () |
- jwhois | [] [] [] |
- kbd | |
- ld | |
- libc | [] [] [] [] |
- libgpewidget | [] [] |
- libiconv | [] [] |
- lifelines | |
- lilypond | [] |
- lingoteach | |
- lingoteach_lessons | |
- lynx | [] [] |
- m4 | [] [] [] [] |
- mailutils | |
- make | [] [] |
- man-db | [] |
- mysecretdiary | [] |
- nano | [] [] [] [] |
- nano_1_0 | [] [] [] [] |
- opcodes | [] [] [] |
- parted | [] [] [] |
- ptx | [] [] [] [] [] [] [] |
- python | |
- radius | |
- recode | [] [] [] |
- screem | |
- sed | [] [] |
- sh-utils | [] |
- sharutils | [] |
- sketch | [] |
- soundtracker | |
- sp | |
- tar | [] [] [] [] [] [] |
- texinfo | [] |
- textutils | [] |
- tin | |
- util-linux | [] [] |
- vorbis-tools | [] [] |
- wastesedge | |
- wdiff | [] [] [] [] |
- wget | [] [] [] |
- xchat | [] [] |
- xpad | [] |
- +----------------------------------------+
- lg lt lv ms nb nl nn no pl pt pt_BR ro
- 0 0 2 11 7 26 3 4 18 15 34 34
-
- ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
- +-------------------------------------------+
- a2ps | [] [] [] [] [] | 16
- aegis | () | 0
- anubis | [] [] | 5
- ap-utils | () | 1
- bash | [] | 7
- batchelor | | 1
- bfd | [] [] [] | 7
- binutils | [] [] [] | 7
- bison | [] [] | 13
- bluez-pin | | 7
- clisp | | 0
- clisp | | 5
- coreutils | [] [] [] [] [] | 14
- cpio | [] [] [] | 13
- darkstat | [] () () | 9
- diffutils | [] [] [] [] | 21
- e2fsprogs | [] | 3
- enscript | [] [] [] | 11
- error | [] [] [] | 14
- fetchmail | [] | 7
- fileutils | [] [] [] [] [] [] | 15
- findutils | [] [] [] [] [] [] | 27
- flex | [] [] [] | 10
- gas | [] | 3
- gawk | [] [] | 9
- gcal | [] [] | 4
- gcc | [] | 4
- gettext | [] [] [] [] [] [] | 15
- gettext-runtime | [] [] [] [] [] [] | 16
- gettext-tools | [] [] | 5
- gimp-print | [] [] | 10
- gliv | | 1
- glunarclock | [] [] [] | 11
- gnucash | [] [] | 4
- gnucash-glossary | [] [] [] | 8
- gnupg | [] [] [] [] | 16
- gpe-calendar | [] | 5
- gpe-conf | | 3
- gpe-contacts | [] | 4
- gpe-edit | [] | 5
- gpe-login | [] | 5
- gpe-ownerinfo | [] | 7
- gpe-sketchbook | [] | 5
- gpe-timesheet | [] | 6
- gpe-today | [] | 6
- gpe-todo | [] | 6
- gphoto2 | [] [] | 9
- gprof | [] [] | 7
- gpsdrive | [] [] | 3
- grep | [] [] [] [] | 24
- gretl | | 2
- hello | [] [] [] [] [] | 33
- id-utils | [] [] [] | 11
- indent | [] [] [] [] | 19
- jpilot | [] [] [] [] [] | 10
- jwhois | () () [] [] | 10
- kbd | [] [] | 8
- ld | [] [] | 5
- libc | [] [] [] [] | 20
- libgpewidget | | 6
- libiconv | [] [] [] [] [] [] | 21
- lifelines | [] | 2
- lilypond | [] | 4
- lingoteach | | 2
- lingoteach_lessons | () | 0
- lynx | [] [] [] [] | 14
- m4 | [] [] [] | 15
- mailutils | | 2
- make | [] [] [] [] | 15
- man-db | [] | 6
- mysecretdiary | [] [] | 8
- nano | [] [] [] | 15
- nano_1_0 | [] [] [] | 15
- opcodes | [] [] | 9
- parted | [] [] | 13
- ptx | [] [] [] | 22
- python | | 0
- radius | | 0
- recode | [] [] [] [] | 19
- screem | [] | 1
- sed | [] [] [] [] [] | 20
- sh-utils | [] [] [] | 13
- sharutils | [] [] [] [] | 16
- sketch | [] | 5
- soundtracker | [] | 7
- sp | [] | 3
- tar | [] [] [] [] [] | 24
- texinfo | [] [] [] [] | 13
- textutils | [] [] [] [] [] | 15
- tin | | 1
- util-linux | [] [] | 14
- vorbis-tools | [] | 7
- wastesedge | | 0
- wdiff | [] [] [] [] | 17
- wget | [] [] [] [] [] [] [] | 25
- xchat | [] [] [] | 11
- xpad | | 1
- +-------------------------------------------+
- 50 teams ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW
- 97 domains 32 19 16 0 56 0 48 10 1 1 12 23 913
+ Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB
+ +-------------------------------------------------+
+ GNUnet | |
+ a2ps | [] [] [] [] [] |
+ aegis | () |
+ ant-phone | () |
+ anubis | [] |
+ ap-utils | |
+ aspell | [] [] [] [] |
+ bash | [] [] |
+ batchelor | [] |
+ bfd | [] |
+ bibshelf | [] |
+ binutils | [] |
+ bison | [] [] |
+ bluez-pin | [] [] [] [] |
+ clisp | [] [] |
+ console-tools | [] [] |
+ coreutils | [] [] [] [] |
+ cpio | |
+ cpplib | [] [] [] |
+ darkstat | [] () [] |
+ dialog | [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] |
+ doodle | [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] |
+ error | [] [] [] [] |
+ fetchmail | [] () [] [] [] |
+ fileutils | [] [] |
+ findutils | [] [] [] |
+ flex | [] [] [] |
+ fslint | [] |
+ gas | |
+ gawk | [] [] [] |
+ gbiff | [] |
+ gcal | [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] |
+ gettext-runtime | [] [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] [] [] |
+ gip | |
+ gliv | [] |
+ glunarclock | [] |
+ gmult | [] [] |
+ gnubiff | () |
+ gnucash | [] () () [] |
+ gnucash-glossary | [] () |
+ gnupg | [] () [] [] |
+ gpe-aerial | [] [] |
+ gpe-beam | [] [] |
+ gpe-calendar | [] [] |
+ gpe-clock | [] [] |
+ gpe-conf | [] [] |
+ gpe-contacts | |
+ gpe-edit | [] |
+ gpe-go | [] |
+ gpe-login | [] [] |
+ gpe-ownerinfo | [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] |
+ gpe-taskmanager | [] [] |
+ gpe-timesheet | [] |
+ gpe-today | [] [] |
+ gpe-todo | [] [] |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] |
+ gpsdrive | () () |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] |
+ gretl | |
+ gsasl | [] |
+ gss | |
+ gst-plugins | [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] |
+ gtick | [] () |
+ gtkspell | [] [] [] |
+ hello | [] [] [] [] |
+ id-utils | [] [] |
+ impost | |
+ indent | [] [] |
+ iso_3166 | |
+ iso_3166_1 | [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_3166_3 | [] |
+ iso_4217 | |
+ iso_639 | |
+ jpilot | [] |
+ jtag | |
+ jwhois | |
+ kbd | [] [] [] [] |
+ latrine | () |
+ ld | [] |
+ libc | [] [] [] [] [] |
+ libextractor | |
+ libgpewidget | [] [] [] |
+ libgsasl | |
+ libiconv | [] [] [] [] [] |
+ libidn | |
+ lifelines | [] () |
+ lilypond | [] |
+ lingoteach | |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] |
+ mailutils | [] |
+ make | [] [] |
+ man-db | [] () [] [] |
+ minicom | [] [] |
+ mysecretdiary | [] [] |
+ nano | [] () [] |
+ nano_1_0 | [] () [] [] |
+ opcodes | [] |
+ parted | [] [] [] [] |
+ psmisc | |
+ ptx | [] [] [] |
+ pwdutils | |
+ python | |
+ radius | [] |
+ recode | [] [] [] [] [] |
+ rpm | [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] [] |
+ sed | [] [] |
+ sh-utils | [] [] |
+ shared-mime-info | [] [] |
+ sharutils | [] [] [] [] [] |
+ silky | () |
+ skencil | [] () |
+ sketch | [] () |
+ solfege | [] |
+ soundtracker | [] [] |
+ sp | [] |
+ stardict | [] |
+ tar | |
+ texinfo | [] [] |
+ textutils | [] [] [] |
+ tin | () () |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] [] |
+ vorbis-tools | [] [] [] [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] |
+ wget | [] [] [] [] [] [] |
+ xchat | [] [] [] [] |
+ xkeyboard-config | |
+ xpad | |
+ +-------------------------------------------------+
+ af am ar az be bg bs ca cs cy da de el en en_GB
+ 10 0 0 2 7 4 0 42 43 3 53 92 21 1 15
+
+ eo es et eu fa fi fr ga gl he hr hu id is it
+ +-----------------------------------------------+
+ GNUnet | |
+ a2ps | [] [] [] () |
+ aegis | |
+ ant-phone | [] |
+ anubis | [] |
+ ap-utils | [] |
+ aspell | [] [] |
+ bash | [] [] [] [] |
+ batchelor | [] [] |
+ bfd | [] [] |
+ bibshelf | [] [] [] |
+ binutils | [] [] |
+ bison | [] [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] |
+ clisp | [] [] |
+ console-tools | |
+ coreutils | [] [] [] [] [] |
+ cpio | [] [] |
+ cpplib | [] [] |
+ darkstat | [] () [] [] [] |
+ dialog | [] [] [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] [] [] [] [] |
+ doodle | [] [] |
+ e2fsprogs | [] [] [] |
+ enscript | [] [] |
+ error | [] [] [] [] [] |
+ fetchmail | [] |
+ fileutils | [] [] [] [] [] [] |
+ findutils | [] [] [] [] [] |
+ flex | [] [] [] |
+ fslint | [] |
+ gas | [] [] |
+ gawk | [] [] [] |
+ gbiff | [] |
+ gcal | [] [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] |
+ gip | [] [] [] |
+ gliv | () |
+ glunarclock | [] [] [] |
+ gmult | [] [] [] |
+ gnubiff | () () |
+ gnucash | [] () [] |
+ gnucash-glossary | [] [] |
+ gnupg | [] [] [] [] [] [] [] [] |
+ gpe-aerial | [] [] |
+ gpe-beam | [] [] |
+ gpe-calendar | [] [] [] [] |
+ gpe-clock | [] [] [] |
+ gpe-conf | [] |
+ gpe-contacts | [] |
+ gpe-edit | [] [] |
+ gpe-go | [] [] |
+ gpe-login | [] [] [] |
+ gpe-ownerinfo | [] [] [] [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] [] |
+ gpe-taskmanager | [] [] [] |
+ gpe-timesheet | [] [] [] [] |
+ gpe-today | [] [] [] [] |
+ gpe-todo | [] [] [] |
+ gphoto2 | [] [] [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | () () [] () |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] [] [] [] [] [] [] |
+ gretl | [] [] [] |
+ gsasl | [] [] [] |
+ gss | [] |
+ gst-plugins | [] [] [] |
+ gstreamer | [] |
+ gtick | [] [] [] [] [] |
+ gtkspell | [] [] [] [] [] [] |
+ hello | [] [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ id-utils | [] [] [] [] |
+ impost | [] [] |
+ indent | [] [] [] [] [] [] [] [] [] [] [] |
+ iso_3166 | [] [] |
+ iso_3166_1 | [] [] [] [] [] [] |
+ iso_3166_2 | [] |
+ iso_3166_3 | [] |
+ iso_4217 | [] [] |
+ iso_639 | [] [] [] |
+ jpilot | [] [] |
+ jtag | [] |
+ jwhois | [] [] [] [] [] |
+ kbd | [] [] |
+ latrine | [] [] [] |
+ ld | [] [] |
+ libc | [] [] [] [] [] |
+ libextractor | |
+ libgpewidget | [] [] [] [] [] |
+ libgsasl | [] [] |
+ libiconv | [] [] [] [] [] [] [] [] [] [] [] |
+ libidn | [] [] |
+ lifelines | () |
+ lilypond | [] |
+ lingoteach | [] [] [] |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] |
+ mailutils | [] [] |
+ make | [] [] [] [] [] [] [] |
+ man-db | () |
+ minicom | [] [] [] [] |
+ mysecretdiary | [] [] [] |
+ nano | [] [] () [] [] |
+ nano_1_0 | [] [] [] [] [] |
+ opcodes | [] [] |
+ parted | [] [] [] [] |
+ psmisc | [] [] |
+ ptx | [] [] [] [] [] [] [] [] [] |
+ pwdutils | |
+ python | |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] [] |
+ rpm | [] |
+ screem | |
+ scrollkeeper | [] [] |
+ sed | [] [] [] [] [] |
+ sh-utils | [] [] [] [] [] [] [] |
+ shared-mime-info | [] [] [] [] [] [] |
+ sharutils | [] [] [] [] [] [] [] |
+ silky | () [] () () |
+ skencil | [] [] |
+ sketch | [] [] |
+ solfege | [] |
+ soundtracker | [] [] [] |
+ sp | [] |
+ stardict | [] |
+ tar | [] [] [] [] [] |
+ texinfo | [] [] [] |
+ textutils | [] [] [] [] [] |
+ tin | [] () |
+ tp-robot | [] [] |
+ tuxpaint | [] [] [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | [] [] |
+ util-linux | [] [] [] [] [] [] |
+ vorbis-tools | [] [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] [] [] [] [] |
+ wget | [] [] [] [] [] [] [] [] [] [] |
+ xchat | [] [] [] [] [] |
+ xkeyboard-config | |
+ xpad | [] [] [] |
+ +-----------------------------------------------+
+ eo es et eu fa fi fr ga gl he hr hu id is it
+ 14 86 22 15 2 31 117 44 18 8 6 40 28 1 45
+
+ ja ko lg lt lv mk mn ms mt nb nl nn no nso or
+ +-----------------------------------------------+
+ GNUnet | |
+ a2ps | () [] [] () |
+ aegis | () |
+ ant-phone | [] |
+ anubis | [] [] [] |
+ ap-utils | |
+ aspell | [] [] |
+ bash | [] |
+ batchelor | [] |
+ bfd | |
+ bibshelf | |
+ binutils | [] |
+ bison | [] [] [] |
+ bluez-pin | [] |
+ clisp | [] |
+ console-tools | |
+ coreutils | [] [] |
+ cpio | |
+ cpplib | |
+ darkstat | [] [] |
+ dialog | [] |
+ diffutils | [] [] [] |
+ doodle | |
+ e2fsprogs | |
+ enscript | [] |
+ error | [] |
+ fetchmail | [] [] |
+ fileutils | [] [] |
+ findutils | |
+ flex | [] [] |
+ fslint | [] |
+ gas | |
+ gawk | [] [] |
+ gbiff | [] |
+ gcal | |
+ gcc | |
+ gettext-examples | [] [] |
+ gettext-runtime | [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] |
+ gip | [] |
+ gliv | [] |
+ glunarclock | [] [] |
+ gmult | [] |
+ gnubiff | |
+ gnucash | () () [] |
+ gnucash-glossary | [] |
+ gnupg | [] [] |
+ gpe-aerial | [] |
+ gpe-beam | [] |
+ gpe-calendar | [] |
+ gpe-clock | [] |
+ gpe-conf | [] |
+ gpe-contacts | |
+ gpe-edit | [] |
+ gpe-go | [] |
+ gpe-login | [] |
+ gpe-ownerinfo | [] |
+ gpe-sketchbook | [] |
+ gpe-su | [] |
+ gpe-taskmanager | [] |
+ gpe-timesheet | [] |
+ gpe-today | [] |
+ gpe-todo | [] |
+ gphoto2 | [] [] |
+ gprof | |
+ gpsdrive | () () () |
+ gramadoir | () |
+ grep | [] [] [] |
+ gretl | |
+ gsasl | [] |
+ gss | |
+ gst-plugins | [] [] |
+ gstreamer | [] |
+ gtick | [] |
+ gtkspell | [] [] |
+ hello | [] [] [] [] [] [] [] [] |
+ id-utils | [] |
+ impost | |
+ indent | [] [] |
+ iso_3166 | [] |
+ iso_3166_1 | [] [] |
+ iso_3166_2 | [] |
+ iso_3166_3 | [] |
+ iso_4217 | [] [] [] |
+ iso_639 | [] [] [] |
+ jpilot | () () () |
+ jtag | |
+ jwhois | [] |
+ kbd | [] |
+ latrine | [] |
+ ld | |
+ libc | [] [] [] [] [] |
+ libextractor | |
+ libgpewidget | [] |
+ libgsasl | [] |
+ libiconv | [] |
+ libidn | |
+ lifelines | [] |
+ lilypond | [] |
+ lingoteach | [] |
+ lynx | [] [] |
+ m4 | [] [] |
+ mailutils | |
+ make | [] [] [] |
+ man-db | () |
+ minicom | [] |
+ mysecretdiary | [] |
+ nano | [] [] |
+ nano_1_0 | [] [] [] |
+ opcodes | [] |
+ parted | [] [] |
+ psmisc | [] [] |
+ ptx | [] [] [] |
+ pwdutils | |
+ python | |
+ radius | |
+ recode | [] |
+ rpm | [] [] |
+ screem | [] |
+ scrollkeeper | [] [] [] |
+ sed | [] [] |
+ sh-utils | [] [] |
+ shared-mime-info | [] [] [] [] |
+ sharutils | [] [] |
+ silky | [] |
+ skencil | |
+ sketch | |
+ solfege | [] [] |
+ soundtracker | |
+ sp | () |
+ stardict | [] [] |
+ tar | [] [] |
+ texinfo | [] [] [] |
+ textutils | [] [] [] |
+ tin | |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] |
+ vorbis-tools | [] |
+ wastesedge | [] |
+ wdiff | [] [] |
+ wget | [] [] |
+ xchat | [] [] [] [] |
+ xkeyboard-config | [] |
+ xpad | [] |
+ +-----------------------------------------------+
+ ja ko lg lt lv mk mn ms mt nb nl nn no nso or
+ 35 11 1 1 2 2 3 11 0 15 96 7 5 0 1
+
+ pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+ +----------------------------------------------+
+ GNUnet | |
+ a2ps | () [] [] [] [] [] [] |
+ aegis | () () |
+ ant-phone | [] |
+ anubis | [] [] [] |
+ ap-utils | () |
+ aspell | [] [] |
+ bash | [] [] [] |
+ batchelor | [] |
+ bfd | [] [] |
+ bibshelf | |
+ binutils | [] [] |
+ bison | [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] [] [] |
+ clisp | [] |
+ console-tools | [] |
+ coreutils | [] [] [] [] |
+ cpio | [] [] |
+ cpplib | |
+ darkstat | [] [] [] [] [] [] |
+ dialog | [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] |
+ doodle | [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] |
+ error | [] [] [] |
+ fetchmail | [] () [] [] [] |
+ fileutils | [] [] [] [] [] |
+ findutils | [] [] [] [] [] [] |
+ flex | [] [] [] [] [] |
+ fslint | [] [] [] |
+ gas | |
+ gawk | [] [] [] [] |
+ gbiff | [] |
+ gcal | [] |
+ gcc | |
+ gettext-examples | [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] [] [] [] |
+ gimp-print | [] [] |
+ gip | [] [] [] |
+ gliv | [] [] [] |
+ glunarclock | [] [] [] [] [] [] |
+ gmult | [] [] [] [] |
+ gnubiff | () [] |
+ gnucash | () [] [] [] [] |
+ gnucash-glossary | [] [] [] |
+ gnupg | [] [] [] |
+ gpe-aerial | [] [] [] [] [] [] |
+ gpe-beam | [] [] [] [] [] [] |
+ gpe-calendar | [] [] [] [] [] [] [] |
+ gpe-clock | [] [] [] [] [] [] [] |
+ gpe-conf | [] [] [] [] [] [] |
+ gpe-contacts | [] [] [] |
+ gpe-edit | [] [] [] [] [] [] [] |
+ gpe-go | [] [] [] [] [] |
+ gpe-login | [] [] [] [] [] [] [] |
+ gpe-ownerinfo | [] [] [] [] [] [] [] |
+ gpe-sketchbook | [] [] [] [] [] [] [] |
+ gpe-su | [] [] [] [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] [] [] [] |
+ gpe-timesheet | [] [] [] [] [] [] [] |
+ gpe-today | [] [] [] [] [] [] [] |
+ gpe-todo | [] [] [] [] [] [] [] |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | [] |
+ gramadoir | [] |
+ grep | [] [] [] [] [] [] [] |
+ gretl | [] |
+ gsasl | [] [] [] [] [] |
+ gss | [] [] [] |
+ gst-plugins | [] [] [] |
+ gstreamer | [] [] [] [] |
+ gtick | [] [] [] |
+ gtkspell | [] [] [] [] [] |
+ hello | [] [] [] [] [] [] [] |
+ id-utils | [] [] [] [] |
+ impost | |
+ indent | [] [] [] [] [] [] |
+ iso_3166 | [] [] [] [] [] |
+ iso_3166_1 | [] [] [] [] |
+ iso_3166_2 | |
+ iso_3166_3 | [] [] [] |
+ iso_4217 | [] [] |
+ iso_639 | [] [] [] |
+ jpilot | |
+ jtag | [] |
+ jwhois | [] [] [] () () |
+ kbd | [] [] [] |
+ latrine | [] [] |
+ ld | [] |
+ libc | [] [] [] [] [] |
+ libextractor | [] |
+ libgpewidget | [] [] [] [] [] [] |
+ libgsasl | [] [] [] |
+ libiconv | [] [] [] [] [] [] [] [] [] [] |
+ libidn | [] () |
+ lifelines | [] [] |
+ lilypond | [] |
+ lingoteach | [] |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] [] |
+ mailutils | [] [] [] |
+ make | [] [] [] [] |
+ man-db | [] [] |
+ minicom | [] [] [] [] |
+ mysecretdiary | [] [] [] |
+ nano | [] [] [] |
+ nano_1_0 | [] [] [] [] |
+ opcodes | [] [] |
+ parted | [] [] [] [] |
+ psmisc | [] [] |
+ ptx | [] [] [] [] [] [] |
+ pwdutils | [] |
+ python | |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] |
+ rpm | [] [] [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] |
+ sed | [] [] [] [] [] [] [] [] |
+ sh-utils | [] [] [] |
+ shared-mime-info | [] [] [] [] [] |
+ sharutils | [] [] [] |
+ silky | () [] |
+ skencil | [] [] [] |
+ sketch | [] [] [] |
+ solfege | |
+ soundtracker | [] [] |
+ sp | |
+ stardict | [] [] |
+ tar | [] [] [] [] |
+ texinfo | [] [] [] [] |
+ textutils | [] [] [] |
+ tin | |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] |
+ vorbis-tools | [] [] |
+ wastesedge | |
+ wdiff | [] [] [] [] [] [] |
+ wget | [] [] [] [] [] [] [] [] [] |
+ xchat | [] [] [] [] [] [] |
+ xkeyboard-config | |
+ xpad | |
+ +----------------------------------------------+
+ pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+ 0 48 30 58 6 81 69 4 46 13 12 50 88 0
+
+ tg th tk tr uk ven vi wa xh zh_CN zh_TW zu
+ +--------------------------------------------+
+ GNUnet | | 0
+ a2ps | [] [] | 18
+ aegis | | 0
+ ant-phone | [] | 4
+ anubis | [] | 9
+ ap-utils | () | 1
+ aspell | [] [] [] | 13
+ bash | | 10
+ batchelor | [] [] | 7
+ bfd | [] | 6
+ bibshelf | [] | 5
+ binutils | [] [] | 8
+ bison | [] | 17
+ bluez-pin | [] [] [] [] [] | 24
+ clisp | | 7
+ console-tools | [] | 4
+ coreutils | [] | 16
+ cpio | [] | 5
+ cpplib | [] [] | 7
+ darkstat | [] () () | 15
+ dialog | [] [] | 23
+ diffutils | [] [] [] | 27
+ doodle | | 4
+ e2fsprogs | [] | 8
+ enscript | [] | 12
+ error | [] [] | 15
+ fetchmail | [] | 12
+ fileutils | [] [] [] | 18
+ findutils | [] [] | 16
+ flex | [] | 14
+ fslint | [] | 7
+ gas | [] | 3
+ gawk | [] | 13
+ gbiff | | 4
+ gcal | [] | 5
+ gcc | [] | 3
+ gettext-examples | [] [] [] [] | 20
+ gettext-runtime | [] [] [] [] [] | 25
+ gettext-tools | [] [] [] | 16
+ gimp-print | [] | 11
+ gip | [] | 8
+ gliv | [] | 6
+ glunarclock | [] [] | 14
+ gmult | [] [] [] | 13
+ gnubiff | [] | 3
+ gnucash | () [] | 10
+ gnucash-glossary | [] | 8
+ gnupg | [] [] [] | 19
+ gpe-aerial | [] [] | 13
+ gpe-beam | [] [] | 13
+ gpe-calendar | [] [] [] [] | 18
+ gpe-clock | [] [] [] | 16
+ gpe-conf | [] [] | 12
+ gpe-contacts | [] [] | 6
+ gpe-edit | [] [] [] | 14
+ gpe-go | [] | 10
+ gpe-login | [] [] [] [] | 17
+ gpe-ownerinfo | [] [] [] | 18
+ gpe-sketchbook | [] | 13
+ gpe-su | [] [] | 15
+ gpe-taskmanager | [] [] | 15
+ gpe-timesheet | [] [] [] | 16
+ gpe-today | [] [] [] [] | 18
+ gpe-todo | [] [] [] | 16
+ gphoto2 | [] [] | 17
+ gprof | [] [] | 10
+ gpsdrive | | 2
+ gramadoir | [] | 6
+ grep | [] [] [] [] | 32
+ gretl | | 4
+ gsasl | [] [] | 12
+ gss | [] | 5
+ gst-plugins | [] [] | 16
+ gstreamer | [] [] [] | 14
+ gtick | [] | 11
+ gtkspell | [] [] [] | 19
+ hello | [] [] [] [] | 37
+ id-utils | [] [] | 13
+ impost | [] | 3
+ indent | [] [] [] | 24
+ iso_3166 | [] [] | 10
+ iso_3166_1 | [] [] | 19
+ iso_3166_2 | | 2
+ iso_3166_3 | [] [] | 8
+ iso_4217 | [] | 8
+ iso_639 | [] | 10
+ jpilot | [] [] [] | 6
+ jtag | | 2
+ jwhois | [] [] [] | 12
+ kbd | [] | 11
+ latrine | [] [] | 8
+ ld | [] | 5
+ libc | [] [] | 22
+ libextractor | | 1
+ libgpewidget | [] [] | 17
+ libgsasl | [] | 7
+ libiconv | [] [] [] [] [] | 32
+ libidn | [] | 4
+ lifelines | | 4
+ lilypond | [] | 5
+ lingoteach | | 5
+ lynx | [] [] | 14
+ m4 | [] [] | 17
+ mailutils | [] | 7
+ make | [] [] | 18
+ man-db | | 5
+ minicom | | 11
+ mysecretdiary | [] [] | 11
+ nano | | 11
+ nano_1_0 | [] [] | 17
+ opcodes | [] | 7
+ parted | [] [] [] | 17
+ psmisc | [] | 7
+ ptx | [] [] | 23
+ pwdutils | | 1
+ python | | 0
+ radius | [] | 6
+ recode | [] [] | 22
+ rpm | [] [] | 11
+ screem | | 1
+ scrollkeeper | [] [] | 22
+ sed | [] [] | 19
+ sh-utils | [] | 15
+ shared-mime-info | [] [] | 19
+ sharutils | [] [] [] | 20
+ silky | | 3
+ skencil | | 6
+ sketch | | 6
+ solfege | | 4
+ soundtracker | [] | 8
+ sp | [] | 3
+ stardict | [] [] [] [] | 10
+ tar | [] [] | 13
+ texinfo | [] [] | 14
+ textutils | [] [] [] | 17
+ tin | | 1
+ tp-robot | [] [] | 7
+ tuxpaint | [] [] [] [] | 34
+ unicode-han-tra... | | 0
+ unicode-transla... | | 2
+ util-linux | [] [] | 17
+ vorbis-tools | [] | 10
+ wastesedge | | 1
+ wdiff | [] [] | 22
+ wget | [] [] [] [] | 31
+ xchat | [] [] [] | 22
+ xkeyboard-config | | 1
+ xpad | [] | 5
+ +--------------------------------------------+
+ 71 teams tg th tk tr uk ven vi wa xh zh_CN zh_TW zu
+ 148 domains 0 0 1 69 29 0 61 16 0 42 21 0 1704
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
lag between the mere existence a PO file and its wide availability in a
distribution.
- If May 2003 seems to be old, you may fetch a more recent copy of
+ If March 2005 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
-Using `gettext' in new packages
-===============================
+1.6 Using `gettext' in new packages
+===================================
- If you are writing a freely available program and want to
+If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package. Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library. This means
+2005-05-23 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * man/Makefile.am: remove shadow-man-pages.pot target from all.
+
+2005-05-19 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * lib/encrypt.c, NEWS:
+ fixed passwd segfault in non-PAM connfiguration (submited by Greg Schafer <gschafer@zip.com.au>).
+
+ * po/sv.po: upsdate (by Christian Perrier <bubulle@debian.org>).
+
+ * NEWS, src/newgrp.c:
+ fixed NULL pointer dereference - getlogin() and ttyname() can
+ return NULL which is not checked (http://bugs.debian.org/162303).
+
+ * man/pwconv.8.xml, man/su.1, man/su.1.xml, man/pwconv.8:
+ fixed typo (s,similiar,similar,).
+
+2005-05-14 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * NEWS, po/ro.po: updated by Sorin B. <sorin@bonbon.net>.
+
+ * po/ru.po, NEWS: updated by yu-koz <yu-koz@yandex.ru>.
+
+2005-05-13 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * po/ro.po: few updates by Sorin Batariuc <sorin@bonbon.net>.
+
+2005-05-12 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * po/ru.po: updated (by Yuri Kozlov <yuray@id.ru>).
+
+2005-05-10 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * po/vi.po:
+ completed translations for HEAD (by Clytie Siddall <clytie@riverland.net.au>).
+
+2005-05-09 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * NEWS, po/LINGUAS, po/vi.po: added new vi translation.
+
+ * NEWS, lib/getdef.c:
+ leaves the table as it is, and changes from the binary search to
+ a sequential one (fix by Lucas Correia Villa Real <lucasvr@gobolinux.org>).
+
+ * man/passwd.1, man/passwd.1.xml: make bold passwd and chfn commands.
+
+2005-04-28 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * man/usermod.8.xml, man/vipw.8.xml: cleanups.
+
+2005-04-27 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * man/gpasswd.1.xml, man/groups.1.xml, man/grpck.8.xml, man/login.defs.5.xml, man/passwd.1.xml, man/pwck.8.xml, man/shadowconfig.8.xml, man/sulogin.8.xml, man/useradd.8.xml:
+ replace <emphasis remap='B'></emphasis> by <command></command>.
+
+ * po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, NEWS, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, src/lastlog.c:
+ fixed lastlog --help message (s,--login,--user,) http://bugs.debian.org/249611
+
+ * man/faillog.5.xml, man/faillog.8.xml, man/gpasswd.1.xml, man/groupadd.8.xml, man/groupdel.8.xml, man/groupmems.8.xml, man/groupmod.8.xml, man/groups.1.xml, man/grpck.8.xml, man/gshadow.5.xml, man/id.1.xml, man/lastlog.8.xml, man/limits.5.xml, man/mkpasswd.8.xml, man/passwd.1.xml, man/passwd.5.xml, man/porttime.5.xml, man/pwck.8.xml, man/shadow.3.xml, man/shadow.5.xml, man/su.1.xml, man/suauth.5.xml, man/sulogin.8.xml, man/useradd.8.xml, man/userdel.8.xml, man/usermod.8.xml:
+ use <varlistentry></varlistentry> in FILES section. Cleanups.
+
+ * man/expiry.1.xml, man/chsh.1.xml, man/chpasswd.8.xml, man/chfn.1.xml, man/porttime.5.xml, man/pw_auth.3.xml:
+ cleanups.
+
+ * man/vipw.8, man/vipw.8.xml:
+ small fix: s,vi,vi(1), (reported by Helge Kreutzmann <kreutzm@itp.uni-hannover.de> in
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=260636).
+ s,VISUAL,$VISUAL; s,EDITOR,$EDITOR,
+
+2005-04-26 Tomasz K³oczko <kloczek@pld.org.pl>
+
+ * man/login.1.xml: fixed bold (use <command></command>). Cleanups.
+
+ * man/login.1: fixed typo in bold.
+
+ * man/chage.1.xml: fixed italic. Cleanups.
+
+ * man/chage.1: fixed typo in italic.
+
+ * man/login.defs.5.xml:
+ fixed italic (use <filename></filename> istead italic). Cleanups.
+
+ * man/login.defs.5: fixed typo in italic.
+
+ * man/vipw.8.xml: fixed italic (use <filename></filename>).
+
+ * man/vipw.8: typo in italic.
+
+ * man/Makefile.am:
+ added target for generate shadow-man-pages.pot. List all now useable xml files
+ in man_XMANS variable.
+
+ * man/pwconv.8.xml:
+ fixed bold. Use in more places <command></command> istead bold.
+
+ * man/login.defs.5: typo in bold.
+
+ * man/su.1.xml:
+ removed comment. Use <variablelist></variablelist> in Files secstion.
+ Fixed bold.
+
+ * man/pwconv.8, man/su.1: typo in bold.
+
2005-04-25 Tomasz K³oczko <kloczek@pld.org.pl>
+ * NEWS, configure.in: start work on 4.0.9.
+
* po/nl.po: kill fuzzy.
* man/chage.1:
config.sub depcomp install-sh ltmain.sh missing mkinstalldirs
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
SUBDIRS = po man libmisc lib src \
contrib doc etc
+ACLOCAL_AMFLAGS = -I m4
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
- $(mkdir_p) $(distdir)/. $(distdir)/po
+ $(mkdir_p) $(distdir)/. $(distdir)/m4 $(distdir)/po
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
-$Id: NEWS,v 1.147 2005/04/25 10:39:48 kloczek Exp $
+$Id: NEWS,v 1.155 2005/05/19 12:05:02 kloczek Exp $
+
+shadow-4.0.8 -> shadow-4.0.9
+
+*** general:
+- passwd: fixed segfault in non-PAM connfiguration
+ (submited by Greg Schafer <gschafer@zip.com.au>),
+- newgrp: fixed NULL pointer dereference - getlogin() and ttyname() can
+ return NULL which is not checked (http://bugs.debian.org/162303),
+- updated translations: ro, ru,
+- added new translations: vi,
+- lib/getdef.c: leaves the table as it is, and changes from the binary search to
+ a sequential one (Lucas Correia Villa Real <lucasvr@gobolinux.org>),
+- lastlog: fixed --help message (s,--login,--user,) http://bugs.debian.org/249611.
shadow-4.0.7 -> shadow-4.0.8
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-# gettext.m4 serial 36 (gettext-0.14.3)
-dnl Copyright (C) 1995-2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-dnl Macro to add for using GNU gettext.
-
-dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-dnl default (if it is not specified or empty) is 'no-libtool'.
-dnl INTLSYMBOL should be 'external' for packages with no intl directory,
-dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-dnl If INTLSYMBOL is 'use-libtool', then a libtool library
-dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl depending on --{enable,disable}-{shared,static} and on the presence of
-dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-dnl $(top_builddir)/intl/libintl.a will be created.
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl implementations (in libc or libintl) without the ngettext() function
-dnl will be ignored. If NEEDSYMBOL is specified and is
-dnl 'need-formatstring-macros', then GNU gettext implementations that don't
-dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-dnl INTLDIR is used to find the intl libraries. If empty,
-dnl the value `$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl and used.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl Catalog format: none
-dnl Catalog extension: none
-dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_GNU_GETTEXT],
-[
- dnl Argument checking.
- ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
- [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])])
- ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
- [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-])])])])
- define([gt_included_intl], ifelse([$1], [external], [no], [yes]))
- define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
-
- AC_REQUIRE([AM_PO_SUBDIRS])dnl
- ifelse(gt_included_intl, yes, [
- AC_REQUIRE([AM_INTL_SUBDIR])dnl
- ])
-
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- dnl Ideally we would do this search only after the
- dnl if test "$USE_NLS" = "yes"; then
- dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
- dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
- dnl the configure script would need to contain the same shell code
- dnl again, outside any 'if'. There are two solutions:
- dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
- dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
- dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
- dnl documented, we avoid it.
- ifelse(gt_included_intl, yes, , [
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
- ])
-
- dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
- gt_INTL_MACOSX
-
- dnl Set USE_NLS.
- AM_NLS
-
- ifelse(gt_included_intl, yes, [
- BUILD_INCLUDED_LIBINTL=no
- USE_INCLUDED_LIBINTL=no
- ])
- LIBINTL=
- LTLIBINTL=
- POSUB=
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- gt_use_preinstalled_gnugettext=no
- ifelse(gt_included_intl, yes, [
- AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH(included-gettext,
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- ])
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If GNU gettext is available we use this. Else we have
- dnl to fall back to GNU NLS library.
-
- dnl Add a version number to the cache macros.
- define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
- define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
- define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-
- AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
- [AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
- gt_cv_func_gnugettext_libc=yes,
- gt_cv_func_gnugettext_libc=no)])
-
- if test "$gt_cv_func_gnugettext_libc" != "yes"; then
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- ifelse(gt_included_intl, yes, , [
- AM_ICONV_LINK
- ])
- dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
- dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
- dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
- dnl even if libiconv doesn't exist.
- AC_LIB_LINKFLAGS_BODY([intl])
- AC_CACHE_CHECK([for GNU gettext in libintl],
- gt_cv_func_gnugettext_libintl,
- [gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $INCINTL"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBINTL"
- dnl Now see whether libintl exists and does not depend on libiconv.
- AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
- gt_cv_func_gnugettext_libintl=yes,
- gt_cv_func_gnugettext_libintl=no)
- dnl Now see whether libintl exists and depends on libiconv.
- if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
- LIBS="$LIBS $LIBICONV"
- AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
- [LIBINTL="$LIBINTL $LIBICONV"
- LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- gt_cv_func_gnugettext_libintl=yes
- ])
- fi
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"])
- fi
-
- dnl If an already present or preinstalled GNU gettext() is found,
- dnl use it. But if this macro is used in GNU gettext, and GNU
- dnl gettext is already preinstalled in libintl, we update this
- dnl libintl. (Cf. the install rule in intl/Makefile.in.)
- if test "$gt_cv_func_gnugettext_libc" = "yes" \
- || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
- && test "$PACKAGE" != gettext-runtime \
- && test "$PACKAGE" != gettext-tools; }; then
- gt_use_preinstalled_gnugettext=yes
- else
- dnl Reset the values set by searching for libintl.
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- fi
-
- ifelse(gt_included_intl, yes, [
- if test "$gt_use_preinstalled_gnugettext" != "yes"; then
- dnl GNU gettext is not found in the C library.
- dnl Fall back on included GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- BUILD_INCLUDED_LIBINTL=yes
- USE_INCLUDED_LIBINTL=yes
- LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
- LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
- LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
- fi
-
- CATOBJEXT=
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions to use GNU gettext tools.
- CATOBJEXT=.gmo
- fi
- ])
-
- if test -n "$INTL_MACOSX_LIBS"; then
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Some extra flags are needed during linking.
- LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
- LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
- fi
- fi
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- AC_DEFINE(ENABLE_NLS, 1,
- [Define to 1 if translation of program messages to the user's native language
- is requested.])
- else
- USE_NLS=no
- fi
- fi
-
- AC_MSG_CHECKING([whether to use NLS])
- AC_MSG_RESULT([$USE_NLS])
- if test "$USE_NLS" = "yes"; then
- AC_MSG_CHECKING([where the gettext function comes from])
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
- gt_source="external libintl"
- else
- gt_source="libc"
- fi
- else
- gt_source="included intl directory"
- fi
- AC_MSG_RESULT([$gt_source])
- fi
-
- if test "$USE_NLS" = "yes"; then
-
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
- AC_MSG_CHECKING([how to link with libintl])
- AC_MSG_RESULT([$LIBINTL])
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
- fi
-
- dnl For backward compatibility. Some packages may be using this.
- AC_DEFINE(HAVE_GETTEXT, 1,
- [Define if the GNU gettext() function is already present or preinstalled.])
- AC_DEFINE(HAVE_DCGETTEXT, 1,
- [Define if the GNU dcgettext() function is already present or preinstalled.])
- fi
-
- dnl We need to process the po/ directory.
- POSUB=po
- fi
-
- ifelse(gt_included_intl, yes, [
- dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
- dnl to 'yes' because some of the testsuite requires it.
- if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
- BUILD_INCLUDED_LIBINTL=yes
- fi
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST(BUILD_INCLUDED_LIBINTL)
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATOBJEXT)
-
- dnl For backward compatibility. Some configure.ins may be using this.
- nls_cv_header_intl=
- nls_cv_header_libgt=
-
- dnl For backward compatibility. Some Makefiles may be using this.
- DATADIRNAME=share
- AC_SUBST(DATADIRNAME)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INSTOBJEXT=.mo
- AC_SUBST(INSTOBJEXT)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- GENCAT=gencat
- AC_SUBST(GENCAT)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INTLOBJS=
- if test "$USE_INCLUDED_LIBINTL" = yes; then
- INTLOBJS="\$(GETTOBJS)"
- fi
- AC_SUBST(INTLOBJS)
-
- dnl Enable libtool support if the surrounding package wishes it.
- INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
- AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
- ])
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INTLLIBS="$LIBINTL"
- AC_SUBST(INTLLIBS)
-
- dnl Make all documented variables known to autoconf.
- AC_SUBST(LIBINTL)
- AC_SUBST(LTLIBINTL)
- AC_SUBST(POSUB)
-])
-
-
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
-[
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
- AC_REQUIRE([gt_GLIBC2])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([bh_C_SIGNED])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl
- AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
- AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
- AC_REQUIRE([gt_TYPE_WINT_T])dnl
- AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
- AC_REQUIRE([gl_AC_HEADER_STDINT_H])
- AC_REQUIRE([gt_TYPE_INTMAX_T])
- AC_REQUIRE([gt_PRINTF_POSIX])
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
- AC_REQUIRE([gl_GLIBC21])dnl
- AC_REQUIRE([gt_INTDIV0])dnl
- AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
- AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
- AC_REQUIRE([gt_INTTYPES_PRI])dnl
- AC_REQUIRE([gl_XSIZE])dnl
- AC_REQUIRE([gt_INTL_MACOSX])dnl
-
- AC_CHECK_TYPE([ptrdiff_t], ,
- [AC_DEFINE([ptrdiff_t], [long],
- [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
- ])
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
- AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
-mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
-strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
-__fsetlocking])
-
- dnl Use the _snprintf function only if it is declared (because on NetBSD it
- dnl is defined as a weak alias of snprintf; we prefer to use the latter).
- gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
- gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
-
- dnl Use the *_unlocked functions only if they are declared.
- dnl (because some of them were defined without being declared in Solaris
- dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
- dnl on Solaris 2.5.1 to run on Solaris 2.6).
- dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
- gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
- gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
- gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
-
- case $gt_cv_func_printf_posix in
- *yes) HAVE_POSIX_PRINTF=1 ;;
- *) HAVE_POSIX_PRINTF=0 ;;
- esac
- AC_SUBST([HAVE_POSIX_PRINTF])
- if test "$ac_cv_func_asprintf" = yes; then
- HAVE_ASPRINTF=1
- else
- HAVE_ASPRINTF=0
- fi
- AC_SUBST([HAVE_ASPRINTF])
- if test "$ac_cv_func_snprintf" = yes; then
- HAVE_SNPRINTF=1
- else
- HAVE_SNPRINTF=0
- fi
- AC_SUBST([HAVE_SNPRINTF])
- if test "$ac_cv_func_wprintf" = yes; then
- HAVE_WPRINTF=1
- else
- HAVE_WPRINTF=0
- fi
- AC_SUBST([HAVE_WPRINTF])
-
- AM_ICONV
- AM_LANGINFO_CODESET
- if test $ac_cv_header_locale_h = yes; then
- gt_LC_MESSAGES
- fi
-
- if test -n "$INTL_MACOSX_LIBS"; then
- CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
- fi
-
- dnl intl/plural.c is generated from intl/plural.y. It requires bison,
- dnl because plural.y uses bison specific features. It requires at least
- dnl bison-1.26 because earlier versions generate a plural.c that doesn't
- dnl compile.
- dnl bison is only needed for the maintainer (who touches plural.y). But in
- dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
- dnl the rule in general Makefile. Now, some people carelessly touch the
- dnl files or have a broken "make" program, hence the plural.c rule will
- dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
- dnl present or too old.
- AC_CHECK_PROGS([INTLBISON], [bison])
- if test -z "$INTLBISON"; then
- ac_verc_fail=yes
- else
- dnl Found it, now check the version.
- AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
- ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
- case $ac_prog_version in
- '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
- ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
- *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- esac
- AC_MSG_RESULT([$ac_prog_version])
- fi
- if test $ac_verc_fail = yes; then
- INTLBISON=:
- fi
-])
-
-
-dnl Checks for special options needed on MacOS X.
-dnl Defines INTL_MACOSX_LIBS.
-AC_DEFUN([gt_INTL_MACOSX],
-[
- dnl Check for API introduced in MacOS X 10.2.
- AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
- gt_cv_func_CFPreferencesCopyAppValue,
- [gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS -framework CoreFoundation"
- AC_TRY_LINK([#include <CFPreferences.h>],
- [CFPreferencesCopyAppValue(NULL, NULL)],
- [gt_cv_func_CFPreferencesCopyAppValue=yes],
- [gt_cv_func_CFPreferencesCopyAppValue=no])
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"])
- if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
- AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
- [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
- fi
- dnl Check for API introduced in MacOS X 10.3.
- AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
- [gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS -framework CoreFoundation"
- AC_TRY_LINK([#include <CFLocale.h>], [CFLocaleCopyCurrent();],
- [gt_cv_func_CFLocaleCopyCurrent=yes],
- [gt_cv_func_CFLocaleCopyCurrent=no])
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"])
- if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
- AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
- [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
- fi
- INTL_MACOSX_LIBS=
- if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
- INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
- fi
- AC_SUBST([INTL_MACOSX_LIBS])
-])
-
-
-dnl gt_CHECK_DECL(FUNC, INCLUDES)
-dnl Check whether a function is declared.
-AC_DEFUN([gt_CHECK_DECL],
-[
- AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
- [AC_TRY_COMPILE([$2], [
-#ifndef $1
- char *p = (char *) $1;
-#endif
-], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
- if test $ac_cv_have_decl_$1 = yes; then
- gt_value=1
- else
- gt_value=0
- fi
- AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
- [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-
-# iconv.m4 serial AM4 (gettext-0.11.3)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-[
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([iconv])
-])
-
-AC_DEFUN([AM_ICONV_LINK],
-[
- dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
- dnl those with the standalone portable GNU libiconv installed).
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-
- dnl Add $INCICONV to CPPFLAGS before performing the following checks,
- dnl because if the user has installed libiconv and not disabled its use
- dnl via --without-libiconv-prefix, he wants to use it. The first
- dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
- am_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
- AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
- am_cv_func_iconv="no, consider installing GNU libiconv"
- am_cv_lib_iconv=no
- AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- am_cv_func_iconv=yes)
- if test "$am_cv_func_iconv" != yes; then
- am_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- am_cv_lib_iconv=yes
- am_cv_func_iconv=yes)
- LIBS="$am_save_LIBS"
- fi
- ])
- if test "$am_cv_func_iconv" = yes; then
- AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
- fi
- if test "$am_cv_lib_iconv" = yes; then
- AC_MSG_CHECKING([how to link with libiconv])
- AC_MSG_RESULT([$LIBICONV])
- else
- dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
- dnl either.
- CPPFLAGS="$am_save_CPPFLAGS"
- LIBICONV=
- LTLIBICONV=
- fi
- AC_SUBST(LIBICONV)
- AC_SUBST(LTLIBICONV)
-])
-
-AC_DEFUN([AM_ICONV],
-[
- AM_ICONV_LINK
- if test "$am_cv_func_iconv" = yes; then
- AC_MSG_CHECKING([for iconv declaration])
- AC_CACHE_VAL(am_cv_proto_iconv, [
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
- am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
- am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
- AC_MSG_RESULT([$]{ac_t:-
- }[$]am_cv_proto_iconv)
- AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
- [Define as const if the declaration of iconv() needs const.])
- fi
-])
-
-# lib-ld.m4 serial 3 (gettext-0.13)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl Subroutines of libtool.m4,
-dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-dnl with libtool.m4.
-
-dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- acl_cv_prog_gnu_ld=yes ;;
-*)
- acl_cv_prog_gnu_ld=no ;;
-esac])
-with_gnu_ld=$acl_cv_prog_gnu_ld
-])
-
-dnl From libtool-1.4. Sets the variable LD.
-AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by GCC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]* | [A-Za-z]:[\\/]*)]
- [re_direlt='/[^/][^/]*/\.\./']
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(acl_cv_path_LD,
-[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- acl_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break ;;
- *)
- test "$with_gnu_ld" != yes && break ;;
- esac
- fi
- done
- IFS="$ac_save_ifs"
-else
- acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_LIB_PROG_LD_GNU
-])
-
-# lib-link.m4 serial 6 (gettext-0.14.3)
-dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_PREREQ(2.50)
-
-dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-dnl augments the CPPFLAGS variable.
-AC_DEFUN([AC_LIB_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
- AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
- ac_cv_lib[]Name[]_libs="$LIB[]NAME"
- ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
- ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
- ])
- LIB[]NAME="$ac_cv_lib[]Name[]_libs"
- LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
- INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
- dnl results of this search when this library appears as a dependency.
- HAVE_LIB[]NAME=yes
- undefine([Name])
- undefine([NAME])
-])
-
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
-dnl searches for libname and the libraries corresponding to explicit and
-dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. If found, it
-dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-
- dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
-
- dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
- dnl because if the user has installed lib[]Name and not disabled its use
- dnl via --without-lib[]Name-prefix, he wants to use it.
- ac_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-
- AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
- ac_save_LIBS="$LIBS"
- LIBS="$LIBS $LIB[]NAME"
- AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
- LIBS="$ac_save_LIBS"
- ])
- if test "$ac_cv_lib[]Name" = yes; then
- HAVE_LIB[]NAME=yes
- AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
- AC_MSG_CHECKING([how to link with lib[]$1])
- AC_MSG_RESULT([$LIB[]NAME])
- else
- HAVE_LIB[]NAME=no
- dnl If $LIB[]NAME didn't lead to a usable library, we don't need
- dnl $INC[]NAME either.
- CPPFLAGS="$ac_save_CPPFLAGS"
- LIB[]NAME=
- LTLIB[]NAME=
- fi
- AC_SUBST([HAVE_LIB]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- undefine([Name])
- undefine([NAME])
-])
-
-dnl Determine the platform dependent parameters needed to use rpath:
-dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-dnl hardcode_direct, hardcode_minus_L.
-AC_DEFUN([AC_LIB_RPATH],
-[
- dnl Tell automake >= 1.10 to complain if config.rpath is missing.
- m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
- AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
- AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
- AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
- AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
- . ./conftest.sh
- rm -f ./conftest.sh
- acl_cv_rpath=done
- ])
- wl="$acl_cv_wl"
- libext="$acl_cv_libext"
- shlibext="$acl_cv_shlibext"
- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- hardcode_direct="$acl_cv_hardcode_direct"
- hardcode_minus_L="$acl_cv_hardcode_minus_L"
- dnl Determine whether the user wants rpath handling at all.
- AC_ARG_ENABLE(rpath,
- [ --disable-rpath do not hardcode runtime library paths],
- :, enable_rpath=yes)
-])
-
-dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-[
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_LIB_ARG_WITH([lib$1-prefix],
-[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
- --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-])
- dnl Search the library and its dependencies in $additional_libdir and
- dnl $LDFLAGS. Using breadth-first-seach.
- LIB[]NAME=
- LTLIB[]NAME=
- INC[]NAME=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='$1 $2'
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
- dnl or AC_LIB_HAVE_LINKFLAGS call.
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
- else
- dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
- dnl that this library doesn't exist. So just drop it.
- :
- fi
- else
- dnl Search the library lib$name in $additional_libdir and $LDFLAGS
- dnl and the already constructed $LIBNAME/$LTLIBNAME.
- found_dir=
- found_la=
- found_so=
- found_a=
- if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
- found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- dnl Found the library.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- dnl Linking with a shared library. We attempt to hardcode its
- dnl directory into the executable's runpath, unless it's the
- dnl standard /usr/lib.
- if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
- dnl No hardcoding is needed.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- dnl The hardcoding into $LIBNAME is system dependent.
- if test "$hardcode_direct" = yes; then
- dnl Using DIR/libNAME.so during linking hardcodes DIR into the
- dnl resulting binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- dnl Rely on "-L$found_dir".
- dnl But don't add it if it's already contained in the LDFLAGS
- dnl or the already constructed $LIBNAME
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
- fi
- if test "$hardcode_minus_L" != no; then
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
- dnl here, because this doesn't fit in flags passed to the
- dnl compiler. So give up. No hardcoding. This affects only
- dnl very old systems.
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- dnl Linking with a static library.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
- else
- dnl We shouldn't come here, but anyway it's good to have a
- dnl fallback.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
- fi
- fi
- dnl Assume the include files are nearby.
- additional_includedir=
- case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- dnl Potentially add $additional_includedir to $INCNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's /usr/local/include and we are using GCC on Linux,
- dnl 3. if it's already present in $CPPFLAGS or the already
- dnl constructed $INCNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INC[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $INCNAME.
- INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- dnl Look for dependencies.
- if test -n "$found_la"; then
- dnl Read the .la file. It defines the variables
- dnl dlname, library_names, old_library, dependency_libs, current,
- dnl age, revision, installed, dlopen, dlpreopen, libdir.
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- dnl We use only dependency_libs.
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 3. if it's already present in $LDFLAGS or the already
- dnl constructed $LIBNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LIBNAME.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LTLIBNAME.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -R*)
- dir=`echo "X$dep" | sed -e 's/^X-R//'`
- if test "$enable_rpath" != no; then
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $dir"
- fi
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $dir"
- fi
- fi
- ;;
- -l*)
- dnl Handle this in the next round.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- dnl Handle this in the next round. Throw away the .la's
- dnl directory; it is already contained in a preceding -L
- dnl option.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- dnl Most likely an immediate library name.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
- ;;
- esac
- done
- fi
- else
- dnl Didn't find the library; assume it is in the system directories
- dnl known to the linker and runtime loader. (All the system
- dnl directories known to the linker should also be known to the
- dnl runtime loader, otherwise the system is severely misconfigured.)
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
- dnl Weird platform: only the last -rpath option counts, the user must
- dnl pass all path elements in one option. We can arrange that for a
- dnl single library, but not when more than one $LIBNAMEs are used.
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
- done
- dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- else
- dnl The -rpath options are cumulative.
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- dnl When using libtool, the option that works for both libraries and
- dnl executables is -R. The -R options are cumulative.
- for found_dir in $ltrpathdirs; do
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
- done
- fi
-])
-
-dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-dnl unless already present in VAR.
-dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-dnl contains two or three consecutive elements that belong together.
-AC_DEFUN([AC_LIB_APPENDTOVAR],
-[
- for element in [$2]; do
- haveit=
- for x in $[$1]; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- [$1]="${[$1]}${[$1]:+ }$element"
- fi
- done
-])
-
-# lib-prefix.m4 serial 4 (gettext-0.14.2)
-dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-dnl require excessive bracketing.
-ifdef([AC_HELP_STRING],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-
-dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-dnl to access previously installed libraries. The basic assumption is that
-dnl a user will want packages to use other packages he previously installed
-dnl with the same --prefix option.
-dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-dnl libraries, but is otherwise very convenient.
-AC_DEFUN([AC_LIB_PREFIX],
-[
- AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([AC_CANONICAL_HOST])
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_LIB_ARG_WITH([lib-prefix],
-[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
- --without-lib-prefix don't search for libraries in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-])
- if test $use_additional = yes; then
- dnl Potentially add $additional_includedir to $CPPFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's already present in $CPPFLAGS,
- dnl 3. if it's /usr/local/include and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- for x in $CPPFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $CPPFLAGS.
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- dnl Potentially add $additional_libdir to $LDFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's already present in $LDFLAGS,
- dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- for x in $LDFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LDFLAGS.
- LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- fi
-])
-
-dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-dnl acl_final_exec_prefix, containing the values to which $prefix and
-dnl $exec_prefix will expand at the end of the configure script.
-AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-[
- dnl Unfortunately, prefix and exec_prefix get only finally determined
- dnl at the end of configure.
- if test "X$prefix" = "XNONE"; then
- acl_final_prefix="$ac_default_prefix"
- else
- acl_final_prefix="$prefix"
- fi
- if test "X$exec_prefix" = "XNONE"; then
- acl_final_exec_prefix='${prefix}'
- else
- acl_final_exec_prefix="$exec_prefix"
- fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
- prefix="$acl_save_prefix"
-])
-
-dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-dnl variables prefix and exec_prefix bound to the values they will have
-dnl at the end of the configure script.
-AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-[
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- $1
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-])
-
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
# serial 47 AC_PROG_LIBTOOL
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
+Xsed='sed -e 1s/^X//'
[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
# Same as above, but do not quote variable references.
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
fi
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+_LT_CC_BASENAME([$compiler])
# Only perform the check for file, if the check method requires it
case $deplibs_check_method in
])# _LT_AC_SYS_COMPILER
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_LINKER_BOILERPLATE
+
+
# _LT_AC_SYS_LIBPATH_AIX
# ----------------------
# Links a minimal program and checks the executable
echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test ! -s conftest.err; then
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
$2=yes
fi
fi
if test -s conftest.err; then
# Append any errors to the config.log.
cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
else
$2=yes
fi
fi
# And add a safety zone
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
;;
osf*)
# Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
- if test ! -s out/conftest.err; then
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
fi
fi
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
#
# Check for any special shared library compilation flags.
#
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
# Allow CC to be a program name with arguments.
lt_save_CC=$CC
lt_save_LD=$LD
CC=${CXX-"c++"}
compiler=$CC
_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+_LT_CC_BASENAME([$compiler])
# We don't want -fno-exception wen compiling C++ code, so set the
# no_builtin_flag separately
fi
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
dgux*)
case $cc_basename in
- ec++)
+ ec++*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- ghcx)
+ ghcx*)
# Green Hills C++ Compiler
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
# location of the library.
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- aCC)
+ aCC*)
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
esac
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- aCC)
+ aCC*)
case "$host_cpu" in
hppa*64*|ia64*)
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
;;
irix5* | irix6*)
case $cc_basename in
- CC)
+ CC*)
# SGI C++
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
# Archives containing C++ object files must be created using
# "CC -ar", where "CC" is the IRIX C++ compiler. This is
*)
if test "$GXX" = yes; then
if test "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
else
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
fi
;;
linux*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
# "CC -Bstatic", where "CC" is the KAI C++ compiler.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
;;
- icpc)
+ icpc*)
# Intel C++
with_gnu_ld=yes
# version 8.0 and above of icpc choke on multiply defined symbols
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
;;
- pgCC)
+ pgCC*)
# Portland Group C++ compiler
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
;;
- cxx)
+ cxx*)
# Compaq C++
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
;;
mvs*)
case $cc_basename in
- cxx)
+ cxx*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
;;
osf3*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- cxx)
+ cxx*)
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
*)
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
;;
osf4* | osf5*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
# the KAI C++ compiler.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- cxx)
+ cxx*)
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
$rm $lib.exp'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
*)
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
sco*)
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
;;
sunos4*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.x
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- lcc)
+ lcc*)
# Lucid
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
solaris*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.2, 5.x and Centerline C++
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
*)
# The C++ compiler is used as linker so we must use $wl
# flag to pass the commands to the underlying system
- # linker.
+ # linker. We must also pass each convience library through
+ # to the system linker between allextract/defaultextract.
+ # The C++ compiler will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
;;
esac
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
# in the archive.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
;;
- gcx)
+ gcx*)
# Green Hills C++ Compiler
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
;;
tandem*)
case $cc_basename in
- NCC)
+ NCC*)
# NonStop-UX NCC 3.20
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${F77-"f77"}
compiler=$CC
_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+_LT_CC_BASENAME([$compiler])
AC_MSG_CHECKING([if libtool supports shared libraries])
AC_MSG_RESULT([$can_build_shared])
fi
;;
aix4* | aix5*)
- test "$enable_shared" = yes && enable_static=no
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
;;
esac
AC_MSG_RESULT([$enable_shared])
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${GCJ-"gcj"}
compiler=$CC
_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
# GCJ did not exist at the time GCC didn't implicitly link libc in.
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
AC_LIBTOOL_PROG_COMPILER_PIC($1)
AC_LIBTOOL_PROG_CC_C_O($1)
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${RC-"windres"}
compiler=$CC
_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
AC_LIBTOOL_CONFIG($1)
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
SED=$lt_SED
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
+Xsed="$SED -e 1s/^X//"
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-# Must we lock files when doing compilation ?
+# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Do we need the lib prefix for modules?
;;
chorus*)
case $cc_basename in
- cxch68)
+ cxch68*)
# Green Hills C++ Compiler
# _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
;;
darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
;;
dgux*)
case $cc_basename in
- ec++)
+ ec++*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
;;
- ghcx)
+ ghcx*)
# Green Hills C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
;;
;;
hpux9* | hpux10* | hpux11*)
case $cc_basename in
- CC)
+ CC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
if test "$host_cpu" != ia64; then
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
fi
;;
- aCC)
+ aCC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
case "$host_cpu" in
;;
irix5* | irix6* | nonstopux*)
case $cc_basename in
- CC)
+ CC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
# CC pic flag -KPIC is the default.
;;
linux*)
case $cc_basename in
- KCC)
+ KCC*)
# KAI C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
- pgCC)
+ pgCC*)
# Portland Group C++ compiler.
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
- cxx)
+ cxx*)
# Compaq C++
# Make sure the PIC flag is empty. It appears that all Alpha
# Linux and Compaq Tru64 Unix objects are PIC.
;;
mvs*)
case $cc_basename in
- cxx)
+ cxx*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
;;
*)
;;
osf3* | osf4* | osf5*)
case $cc_basename in
- KCC)
+ KCC*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
;;
- cxx)
+ cxx*)
# Digital/Compaq C++
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
# Make sure the PIC flag is empty. It appears that all Alpha
;;
sco*)
case $cc_basename in
- CC)
+ CC*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
;;
*)
;;
solaris*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.2, 5.x and Centerline C++
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
;;
- gcx)
+ gcx*)
# Green Hills C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
;;
;;
sunos4*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.x
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
;;
- lcc)
+ lcc*)
# Lucid
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
;;
;;
tandem*)
case $cc_basename in
- NCC)
+ NCC*)
# NonStop-UX NCC 3.20
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
;;
darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
- pgcc | pgf77 | pgf90)
+ pgcc* | pgf77* | pgf90*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
;;
solaris*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+ esac
;;
sunos4*)
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
extract_expsyms_cmds=
-
+ # Just being paranoid about ensuring that cc_basename is set.
+ _LT_CC_BASENAME([$compiler])
case $host_os in
cygwin* | mingw* | pw32*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
if test "$with_gnu_ld" = yes; then
# If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='${wl}'
-
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
# See if GNU ld supports shared libraries.
case $host_os in
aix3* | aix4* | aix5*)
fi
;;
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ tmp_addflag=' -fpic -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
;;
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_addflag=
- case $CC,$host_cpu in
- pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
- tmp_addflag=' -fpic' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- esac
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
- if test $supports_anon_versioning = yes; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- else
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)=$_LT_AC_TAGVAR(archive_cmds, $1)
- fi
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
;;
esac
- if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
- runpath_var=LD_RUN_PATH
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
- fi
+ if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
+ runpath_var=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
# Both c and cxx compiler support -rpath directly
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
solaris*)
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
if test "$GCC" = yes; then
+ wlarc='${wl}'
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
else
+ wlarc=''
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
case $host_os in
solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+ *)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
esac
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
;;
AC_MSG_RESULT([$SED])
])
-# nls.m4 serial 2 (gettext-0.14.3)
-dnl Copyright (C) 1995-2003, 2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_PREREQ(2.50)
-
-AC_DEFUN([AM_NLS],
-[
- AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-])
-
-AC_DEFUN([AM_MKINSTALLDIRS],
-[
- dnl Tell automake >= 1.10 to complain if mkinstalldirs is missing.
- m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([mkinstalldirs])])
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
- dnl Try to locate it.
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- case "$ac_aux_dir" in
- /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
- *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
- esac
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
-])
-
-# po.m4 serial 7 (gettext-0.14.3)
-dnl Copyright (C) 1995-2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_PREREQ(2.50)
-
-dnl Checks for all prerequisites of the po subdirectory.
-AC_DEFUN([AM_PO_SUBDIRS],
-[
- AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
- AC_REQUIRE([AM_NLS])dnl
-
- dnl Perform the following tests also if --disable-nls has been given,
- dnl because they are needed for "make dist" to work.
-
- dnl Search for GNU msgfmt in the PATH.
- dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
- dnl The second test excludes FreeBSD msgfmt.
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
- dnl Search for GNU xgettext 0.12 or newer in the PATH.
- dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
- dnl The second test excludes FreeBSD xgettext.
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
-
- dnl Search for GNU msgmerge 0.11 or newer in the PATH.
- AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
- [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
-
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU msgfmt.
- if test "$GMSGFMT" != ":"; then
- dnl If it is no GNU msgfmt we define it as : so that the
- dnl Makefiles still can work.
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- AC_MSG_RESULT(
- [found $GMSGFMT program is not GNU msgfmt; ignore it])
- GMSGFMT=":"
- fi
- fi
-
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext program is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
- fi
-
- AC_OUTPUT_COMMANDS([
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- # Treat a directory as a PO directory if and only if it has a
- # POTFILES.in file. This allows packages to have multiple PO
- # directories under different names or in different locations.
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- POMAKEFILEDEPS="POTFILES.in"
- # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$OBSOLETE_ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
- else
- # The set of available languages was given in configure.in.
- eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
- fi
- # Compute POFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
- # Compute UPDATEPOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
- # Compute DUMMYPOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
- # Compute GMOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- GMOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done],
- [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
- # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
- # from automake.
- eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="${LINGUAS-%UNSET%}"
- ])
-])
-
-dnl Postprocesses a Makefile in a directory containing PO files.
-AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
-[
- # When this code is run, in config.status, two variables have already been
- # set:
- # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
- # - LINGUAS is the value of the environment variable LINGUAS at configure
- # time.
-
-changequote(,)dnl
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- # Find a way to echo strings without interpreting backslash.
- if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
- gt_echo='echo'
- else
- if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
- gt_echo='printf %s\n'
- else
- echo_func () {
- cat <<EOT
-$*
-EOT
- }
- gt_echo='echo_func'
- fi
- fi
-
- # A sed script that extracts the value of VARIABLE from a Makefile.
- sed_x_variable='
-# Test if the hold space is empty.
-x
-s/P/P/
-x
-ta
-# Yes it was empty. Look if we have the expected variable definition.
-/^[ ]*VARIABLE[ ]*=/{
- # Seen the first line of the variable definition.
- s/^[ ]*VARIABLE[ ]*=//
- ba
-}
-bd
-:a
-# Here we are processing a line from the variable definition.
-# Remove comment, more precisely replace it with a space.
-s/#.*$/ /
-# See if the line ends in a backslash.
-tb
-:b
-s/\\$//
-# Print the line, without the trailing backslash.
-p
-tc
-# There was no trailing backslash. The end of the variable definition is
-# reached. Clear the hold space.
-s/^.*$//
-x
-bd
-:c
-# A trailing backslash means that the variable definition continues in the
-# next line. Put a nonempty string into the hold space to indicate this.
-s/^.*$/P/
-x
-:d
-'
-changequote([,])dnl
-
- # Set POTFILES to the value of the Makefile variable POTFILES.
- sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
- POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
- # Compute POTFILES_DEPS as
- # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
- POTFILES_DEPS=
- for file in $POTFILES; do
- POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
- done
- POMAKEFILEDEPS=""
-
- if test -n "$OBSOLETE_ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
- else
- # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
- sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
- ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
- fi
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- # Compute POFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
- # Compute UPDATEPOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
- # Compute DUMMYPOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
- # Compute GMOFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
- # Compute PROPERTIESFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
- # Compute CLASSFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
- # Compute QMFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
- # Compute MSGFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
- # Compute RESOURCESDLLFILES
- # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- GMOFILES=
- PROPERTIESFILES=
- CLASSFILES=
- QMFILES=
- MSGFILES=
- RESOURCESDLLFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
- CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
- QMFILES="$QMFILES $srcdirpre$lang.qm"
- frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
- MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
- frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
- RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- JAVACATALOGS=
- QTCATALOGS=
- TCLCATALOGS=
- CSHARPCATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
- QTCATALOGS="$QTCATALOGS $lang.qm"
- frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
- TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
- frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
- CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
- done
- fi
-
- sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
- if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
- # Add dependencies that cannot be formulated as a simple suffix rule.
- for lang in $ALL_LINGUAS; do
- frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
- cat >> "$ac_file.tmp" <<EOF
-$frobbedlang.msg: $lang.po
- @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
- \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-EOF
- done
- fi
- if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
- # Add dependencies that cannot be formulated as a simple suffix rule.
- for lang in $ALL_LINGUAS; do
- frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
- cat >> "$ac_file.tmp" <<EOF
-$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
- @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
- \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-EOF
- done
- fi
- if test -n "$POMAKEFILEDEPS"; then
- cat >> "$ac_file.tmp" <<EOF
-Makefile: $POMAKEFILEDEPS
-EOF
- fi
- mv "$ac_file.tmp" "$ac_file"
-])
-
-# progtest.m4 serial 4 (gettext-0.14.2)
-dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-AC_PREREQ(2.50)
-
-# Search path for a program which passes the given test.
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
-else
- ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- [[\\/]]* | ?:[[\\/]]*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
- AC_MSG_RESULT([$]$1)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
+m4_include([m4/gettext.m4])
+m4_include([m4/iconv.m4])
+m4_include([m4/lib-ld.m4])
+m4_include([m4/lib-link.m4])
+m4_include([m4/lib-prefix.m4])
+m4_include([m4/nls.m4])
+m4_include([m4/po.m4])
+m4_include([m4/progtest.m4])
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2003 Free Software Foundation, Inc.
+# Copyright 1996-2005 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
-# 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.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+cc_basename=`echo "$CC" | sed -e 's%^.*/%%'`
+
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
wl=
aix*)
wl='-Wl,'
;;
+ darwin*)
+ case "$cc_basename" in
+ xlc*)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
mingw* | pw32* | os2*)
;;
hpux9* | hpux10* | hpux11*)
newsos6)
;;
linux*)
- case $CC in
- icc|ecc)
+ case $cc_basename in
+ icc* | ecc*)
+ wl='-Wl,'
+ ;;
+ pgcc | pgf77 | pgf90)
wl='-Wl,'
;;
- ccc)
+ ccc*)
wl='-Wl,'
;;
+ como)
+ wl='-lopt='
+ ;;
esac
;;
osf3* | osf4* | osf5*)
;;
sysv4*MP*)
;;
+ unicos*)
+ wl='-Wl,'
+ ;;
uts4*)
;;
esac
# that the semantics of dynamic libraries on AmigaOS, at least up
# to version 4, is to share data among multiple programs linked
# with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can use
+ # behavior of shared libraries on other platforms, we cannot use
# them.
ld_shlibs=no
;;
beos*)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
netbsd*)
;;
solaris* | sysv5*)
- if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
- elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
sunos4*)
hardcode_direct=yes
;;
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
*)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
# see comment about different semantics on the GNU ld section
ld_shlibs=no
;;
- bsdi4*)
+ bsdi[45]*)
;;
cygwin* | mingw* | pw32*)
# When not using gcc, we currently assume that we are using
libext=lib
;;
darwin* | rhapsody*)
- if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
- hardcode_direct=no
+ hardcode_direct=no
+ if test "$GCC" = yes ; then
+ :
+ else
+ case "$cc_basename" in
+ xlc*)
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
fi
;;
dgux*)
hardcode_direct=yes
hardcode_minus_L=yes
;;
- freebsd*)
+ freebsd* | kfreebsd*-gnu | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
;;
beos*)
;;
- bsdi4*)
+ bsdi[45]*)
;;
cygwin* | mingw* | pw32*)
shrext=.dll
;;
freebsd1*)
;;
+ kfreebsd*-gnu)
+ ;;
freebsd*)
;;
gnu*)
;;
linux*)
;;
+ knetbsd*-gnu)
+ ;;
netbsd*)
;;
newsos6)
;;
- nto-qnx)
+ nto-qnx*)
;;
openbsd*)
;;
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
# How to pass a linker flag through the compiler.
wl="$escaped_wl"
# Define the identity of the package.
PACKAGE=shadow
- VERSION=4.0.8
+ VERSION=4.0.9
cat >>confdefs.h <<_ACEOF
fi
# And add a safety zone
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
;;
osf*)
# Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
+Xsed='sed -e 1s/^X//'
sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
# Same as above, but do not quote variable references.
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
fi
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
# Only perform the check for file, if the check method requires it
case $deplibs_check_method in
compiler=$CC
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
#
# Check for any special shared library compilation flags.
#
if test -s conftest.err; then
# Append any errors to the config.log.
cat conftest.err 1>&5
+ $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_prog_compiler_static_works=yes
+ fi
else
lt_prog_compiler_static_works=yes
fi
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6692: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6721: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6696: \$? = $ac_status" >&5
+ echo "$as_me:6725: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test ! -s conftest.err; then
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler_rtti_exceptions=yes
fi
fi
darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
lt_prog_compiler_pic='-qnocommon'
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-static'
;;
- pgcc | pgf77 | pgf90)
+ pgcc* | pgf77* | pgf90*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
lt_prog_compiler_wl='-Wl,'
;;
solaris*)
- lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
;;
sunos4*)
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6947: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6983: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6951: \$? = $ac_status" >&5
+ echo "$as_me:6987: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test ! -s conftest.err; then
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
lt_prog_compiler_pic_works=yes
fi
fi
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7007: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7045: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:7011: \$? = $ac_status" >&5
+ echo "$as_me:7049: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
- if test ! -s out/conftest.err; then
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
lt_cv_prog_compiler_c_o=yes
fi
fi
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
case $host_os in
cygwin* | mingw* | pw32*)
# If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='${wl}'
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
# See if GNU ld supports shared libraries.
case $host_os in
aix3* | aix4* | aix5*)
fi
;;
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec=
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec=
+ tmp_addflag=' -fpic -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
hardcode_shlibpath_var=no
;;
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_addflag=
- case $CC,$host_cpu in
- pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
- tmp_addflag=' -fpic' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- esac
- archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
- if test $supports_anon_versioning = yes; then
- archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- else
- archive_expsym_cmds=$archive_cmds
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
;;
esac
- if test "$ld_shlibs" = yes; then
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
allow_undefined_flag=' -expect_unresolved \*'
archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
# Both c and cxx compiler support -rpath directly
hardcode_libdir_flag_spec='-rpath $libdir'
solaris*)
no_undefined_flag=' -z text'
if test "$GCC" = yes; then
+ wlarc='${wl}'
archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
else
+ wlarc=''
archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
hardcode_shlibpath_var=no
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
esac
link_all_deplibs=yes
;;
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 8357 "configure"' > conftest.$ac_ext
+ echo '#line 8430 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9228 "configure"
+#line 9301 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9326 "configure"
+#line 9399 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
SED=$lt_SED
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
+Xsed="$SED -e 1s/^X//"
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-# Must we lock files when doing compilation ?
+# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Do we need the lib prefix for modules?
compiler=$CC
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
# Allow CC to be a program name with arguments.
lt_save_CC=$CC
lt_save_LD=$LD
CC=${CXX-"c++"}
compiler=$CC
compiler_CXX=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
# We don't want -fno-exception wen compiling C++ code, so set the
# no_builtin_flag separately
fi
module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
dgux*)
case $cc_basename in
- ec++)
+ ec++*)
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
- ghcx)
+ ghcx*)
# Green Hills C++ Compiler
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
# location of the library.
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
- aCC)
+ aCC*)
archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
esac
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
- aCC)
+ aCC*)
case "$host_cpu" in
hppa*64*|ia64*)
archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
;;
irix5* | irix6*)
case $cc_basename in
- CC)
+ CC*)
# SGI C++
- archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
# Archives containing C++ object files must be created using
# "CC -ar", where "CC" is the IRIX C++ compiler. This is
*)
if test "$GXX" = yes; then
if test "$with_gnu_ld" = no; then
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
else
archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
fi
;;
linux*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
# "CC -Bstatic", where "CC" is the KAI C++ compiler.
old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
;;
- icpc)
+ icpc*)
# Intel C++
with_gnu_ld=yes
# version 8.0 and above of icpc choke on multiply defined symbols
export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
;;
- pgCC)
+ pgCC*)
# Portland Group C++ compiler
archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX=''
;;
- cxx)
+ cxx*)
# Compaq C++
archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
;;
mvs*)
case $cc_basename in
- cxx)
+ cxx*)
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
;;
osf3*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
- cxx)
+ cxx*)
allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator_CXX=:
*)
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator_CXX=:
;;
osf4* | osf5*)
case $cc_basename in
- KCC)
+ KCC*)
# Kuck and Associates, Inc. (KAI) C++ Compiler
# KCC will only create a shared library if the output file
# the KAI C++ compiler.
old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
- cxx)
+ cxx*)
allow_undefined_flag_CXX=' -expect_unresolved \*'
- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
$rm $lib.exp'
hardcode_libdir_flag_spec_CXX='-rpath $libdir'
*)
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator_CXX=:
sco*)
archive_cmds_need_lc_CXX=no
case $cc_basename in
- CC)
+ CC*)
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
;;
sunos4*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.x
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
- lcc)
+ lcc*)
# Lucid
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
solaris*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.2, 5.x and Centerline C++
no_undefined_flag_CXX=' -zdefs'
archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
*)
# The C++ compiler is used as linker so we must use $wl
# flag to pass the commands to the underlying system
- # linker.
+ # linker. We must also pass each convience library through
+ # to the system linker between allextract/defaultextract.
+ # The C++ compiler will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
;;
esac
link_all_deplibs_CXX=yes
# in the archive.
old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
;;
- gcx)
+ gcx*)
# Green Hills C++ Compiler
archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
;;
tandem*)
case $cc_basename in
- NCC)
+ NCC*)
# NonStop-UX NCC 3.20
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
chorus*)
case $cc_basename in
- cxch68)
+ cxch68*)
# Green Hills C++ Compiler
# _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
;;
darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
lt_prog_compiler_pic_CXX='-qnocommon'
lt_prog_compiler_wl_CXX='-Wl,'
;;
dgux*)
case $cc_basename in
- ec++)
+ ec++*)
lt_prog_compiler_pic_CXX='-KPIC'
;;
- ghcx)
+ ghcx*)
# Green Hills C++ Compiler
lt_prog_compiler_pic_CXX='-pic'
;;
;;
hpux9* | hpux10* | hpux11*)
case $cc_basename in
- CC)
+ CC*)
lt_prog_compiler_wl_CXX='-Wl,'
lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
if test "$host_cpu" != ia64; then
lt_prog_compiler_pic_CXX='+Z'
fi
;;
- aCC)
+ aCC*)
lt_prog_compiler_wl_CXX='-Wl,'
lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
case "$host_cpu" in
;;
irix5* | irix6* | nonstopux*)
case $cc_basename in
- CC)
+ CC*)
lt_prog_compiler_wl_CXX='-Wl,'
lt_prog_compiler_static_CXX='-non_shared'
# CC pic flag -KPIC is the default.
;;
linux*)
case $cc_basename in
- KCC)
+ KCC*)
# KAI C++ Compiler
lt_prog_compiler_wl_CXX='--backend -Wl,'
lt_prog_compiler_pic_CXX='-fPIC'
lt_prog_compiler_pic_CXX='-KPIC'
lt_prog_compiler_static_CXX='-static'
;;
- pgCC)
+ pgCC*)
# Portland Group C++ compiler.
lt_prog_compiler_wl_CXX='-Wl,'
lt_prog_compiler_pic_CXX='-fpic'
lt_prog_compiler_static_CXX='-static'
;;
- cxx)
+ cxx*)
# Compaq C++
# Make sure the PIC flag is empty. It appears that all Alpha
# Linux and Compaq Tru64 Unix objects are PIC.
;;
mvs*)
case $cc_basename in
- cxx)
+ cxx*)
lt_prog_compiler_pic_CXX='-W c,exportall'
;;
*)
;;
osf3* | osf4* | osf5*)
case $cc_basename in
- KCC)
+ KCC*)
lt_prog_compiler_wl_CXX='--backend -Wl,'
;;
- RCC)
+ RCC*)
# Rational C++ 2.4.1
lt_prog_compiler_pic_CXX='-pic'
;;
- cxx)
+ cxx*)
# Digital/Compaq C++
lt_prog_compiler_wl_CXX='-Wl,'
# Make sure the PIC flag is empty. It appears that all Alpha
;;
sco*)
case $cc_basename in
- CC)
+ CC*)
lt_prog_compiler_pic_CXX='-fPIC'
;;
*)
;;
solaris*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.2, 5.x and Centerline C++
lt_prog_compiler_pic_CXX='-KPIC'
lt_prog_compiler_static_CXX='-Bstatic'
lt_prog_compiler_wl_CXX='-Qoption ld '
;;
- gcx)
+ gcx*)
# Green Hills C++ Compiler
lt_prog_compiler_pic_CXX='-PIC'
;;
;;
sunos4*)
case $cc_basename in
- CC)
+ CC*)
# Sun C++ 4.x
lt_prog_compiler_pic_CXX='-pic'
lt_prog_compiler_static_CXX='-Bstatic'
;;
- lcc)
+ lcc*)
# Lucid
lt_prog_compiler_pic_CXX='-pic'
;;
;;
tandem*)
case $cc_basename in
- NCC)
+ NCC*)
# NonStop-UX NCC 3.20
lt_prog_compiler_pic_CXX='-KPIC'
;;
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11546: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11647: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11550: \$? = $ac_status" >&5
+ echo "$as_me:11651: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test ! -s conftest.err; then
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
lt_prog_compiler_pic_works_CXX=yes
fi
fi
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11606: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11709: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11610: \$? = $ac_status" >&5
+ echo "$as_me:11713: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
- if test ! -s out/conftest.err; then
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
lt_cv_prog_compiler_c_o_CXX=yes
fi
fi
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 12119 "configure"' > conftest.$ac_ext
+ echo '#line 12224 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 12990 "configure"
+#line 13095 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 13088 "configure"
+#line 13193 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-# Must we lock files when doing compilation ?
+# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Do we need the lib prefix for modules?
compiler=$CC
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${F77-"f77"}
compiler=$CC
compiler_F77=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
fi
;;
aix4* | aix5*)
- test "$enable_shared" = yes && enable_static=no
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
;;
esac
echo "$as_me:$LINENO: result: $enable_shared" >&5
darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
lt_prog_compiler_pic_F77='-qnocommon'
lt_prog_compiler_wl_F77='-Wl,'
lt_prog_compiler_pic_F77='-KPIC'
lt_prog_compiler_static_F77='-static'
;;
- pgcc | pgf77 | pgf90)
+ pgcc* | pgf77* | pgf90*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
lt_prog_compiler_wl_F77='-Wl,'
;;
solaris*)
- lt_prog_compiler_wl_F77='-Wl,'
lt_prog_compiler_pic_F77='-KPIC'
lt_prog_compiler_static_F77='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl_F77='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl_F77='-Wl,';;
+ esac
;;
sunos4*)
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13943: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14078: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13947: \$? = $ac_status" >&5
+ echo "$as_me:14082: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test ! -s conftest.err; then
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
lt_prog_compiler_pic_works_F77=yes
fi
fi
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14003: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14140: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14007: \$? = $ac_status" >&5
+ echo "$as_me:14144: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
- if test ! -s out/conftest.err; then
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
lt_cv_prog_compiler_c_o_F77=yes
fi
fi
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
case $host_os in
cygwin* | mingw* | pw32*)
# If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='${wl}'
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_F77=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
# See if GNU ld supports shared libraries.
case $host_os in
aix3* | aix4* | aix5*)
fi
;;
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec_F77=
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec_F77=
+ tmp_addflag=' -fpic -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs_F77=no
+ fi
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
hardcode_shlibpath_var_F77=no
;;
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_addflag=
- case $CC,$host_cpu in
- pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
- tmp_addflag=' -fpic' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- esac
- archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
- if test $supports_anon_versioning = yes; then
- archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- else
- archive_expsym_cmds_F77=$archive_cmds_F77
- fi
- else
- ld_shlibs_F77=no
- fi
- ;;
-
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
;;
esac
- if test "$ld_shlibs_F77" = yes; then
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec_F77='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec_F77=
- fi
+ if test "$ld_shlibs_F77" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec_F77=
+ export_dynamic_flag_spec_F77=
+ whole_archive_flag_spec_F77=
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
allow_undefined_flag_F77=' -expect_unresolved \*'
archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
# Both c and cxx compiler support -rpath directly
hardcode_libdir_flag_spec_F77='-rpath $libdir'
solaris*)
no_undefined_flag_F77=' -z text'
if test "$GCC" = yes; then
+ wlarc='${wl}'
archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
else
+ wlarc=''
archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
hardcode_shlibpath_var_F77=no
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
esac
link_all_deplibs_F77=yes
;;
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 15333 "configure"' > conftest.$ac_ext
+ echo '#line 15505 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
-# Must we lock files when doing compilation ?
+# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Do we need the lib prefix for modules?
compiler=$CC
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${GCJ-"gcj"}
compiler=$CC
compiler_GCJ=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
# GCJ did not exist at the time GCC didn't implicitly link libc in.
archive_cmds_need_lc_GCJ=no
+old_archive_cmds_GCJ=$old_archive_cmds
+
lt_prog_compiler_no_builtin_flag_GCJ=
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16080: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16278: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16084: \$? = $ac_status" >&5
+ echo "$as_me:16282: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test ! -s conftest.err; then
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler_rtti_exceptions=yes
fi
fi
darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
lt_prog_compiler_pic_GCJ='-qnocommon'
lt_prog_compiler_wl_GCJ='-Wl,'
lt_prog_compiler_pic_GCJ='-KPIC'
lt_prog_compiler_static_GCJ='-static'
;;
- pgcc | pgf77 | pgf90)
+ pgcc* | pgf77* | pgf90*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
lt_prog_compiler_wl_GCJ='-Wl,'
;;
solaris*)
- lt_prog_compiler_wl_GCJ='-Wl,'
lt_prog_compiler_pic_GCJ='-KPIC'
lt_prog_compiler_static_GCJ='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl_GCJ='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl_GCJ='-Wl,';;
+ esac
;;
sunos4*)
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16335: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16540: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16339: \$? = $ac_status" >&5
+ echo "$as_me:16544: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test ! -s conftest.err; then
+ # So say no if there are warnings other than the usual output.
+ $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+ $SED '/^$/d' conftest.err >conftest.er2
+ if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
lt_prog_compiler_pic_works_GCJ=yes
fi
fi
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16395: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16602: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16399: \$? = $ac_status" >&5
+ echo "$as_me:16606: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
- if test ! -s out/conftest.err; then
+ $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+ $SED '/^$/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
lt_cv_prog_compiler_c_o_GCJ=yes
fi
fi
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
extract_expsyms_cmds=
+ # Just being paranoid about ensuring that cc_basename is set.
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
case $host_os in
cygwin* | mingw* | pw32*)
# If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='${wl}'
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_GCJ=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>/dev/null` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
# See if GNU ld supports shared libraries.
case $host_os in
aix3* | aix4* | aix5*)
fi
;;
+ linux*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ tmp_addflag=
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec_GCJ=
+ ;;
+ pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec_GCJ=
+ tmp_addflag=' -fpic -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ esac
+ archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test $supports_anon_versioning = yes; then
+ archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ $echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ else
+ ld_shlibs_GCJ=no
+ fi
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
hardcode_shlibpath_var_GCJ=no
;;
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_addflag=
- case $CC,$host_cpu in
- pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
- tmp_addflag=' -fpic' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- esac
- archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
- if test $supports_anon_versioning = yes; then
- archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- else
- archive_expsym_cmds_GCJ=$archive_cmds_GCJ
- fi
- else
- ld_shlibs_GCJ=no
- fi
- ;;
-
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
;;
esac
- if test "$ld_shlibs_GCJ" = yes; then
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec_GCJ=
- fi
+ if test "$ld_shlibs_GCJ" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec_GCJ=
+ export_dynamic_flag_spec_GCJ=
+ whole_archive_flag_spec_GCJ=
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
- case "$cc_basename" in
+ case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
allow_undefined_flag_GCJ=' -expect_unresolved \*'
archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
# Both c and cxx compiler support -rpath directly
hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
solaris*)
no_undefined_flag_GCJ=' -z text'
if test "$GCC" = yes; then
+ wlarc='${wl}'
archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
else
+ wlarc=''
archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
hardcode_shlibpath_var_GCJ=no
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;;
+ *)
+ # The compiler driver will combine linker options so we
+ # cannot just pass the convience library names through
+ # without $wl, iff we do not link with $LD.
+ # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ case $wlarc in
+ '')
+ whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+ *)
+ whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ esac ;;
esac
link_all_deplibs_GCJ=yes
;;
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 17745 "configure"' > conftest.$ac_ext
+ echo '#line 17987 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 18616 "configure"
+#line 18858 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 18714 "configure"
+#line 18956 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
-# Must we lock files when doing compilation ?
+# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Do we need the lib prefix for modules?
compiler=$CC
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
# Allow CC to be a program name with arguments.
lt_save_CC="$CC"
CC=${RC-"windres"}
compiler=$CC
compiler_RC=$CC
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
lt_cv_prog_compiler_c_o_RC=yes
# The else clause should only fire when bootstrapping the
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
-# Must we lock files when doing compilation ?
+# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Do we need the lib prefix for modules?
dnl Process this file with autoconf to produce a configure script.
AC_INIT
-AM_INIT_AUTOMAKE(shadow, 4.0.8)
+AM_INIT_AUTOMAKE(shadow, 4.0.9)
AC_CONFIG_HEADERS([config.h])
dnl Some hacks...
subdir = contrib
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = doc
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = etc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = etc/pam.d
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = lib
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
#include <config.h>
#include "rcsid.h"
-RCSID ("$Id: encrypt.c,v 1.11 2005/04/06 02:59:22 kloczek Exp $")
+RCSID ("$Id: encrypt.c,v 1.12 2005/05/19 12:05:03 kloczek Exp $")
#include <unistd.h>
#include "prototypes.h"
#include "defines.h"
static char cipher[128];
char *cp;
- crypt (clear, salt);
+ cp = crypt (clear, salt);
if (!cp) {
/*
* Single Unix Spec: crypt() may return a null pointer,
#include <config.h>
#include "rcsid.h"
-RCSID ("$Id: getdef.c,v 1.28 2005/04/01 22:52:03 kloczek Exp $")
+RCSID ("$Id: getdef.c,v 1.29 2005/05/09 10:45:26 kloczek Exp $")
#include "prototypes.h"
#include "defines.h"
#include <stdio.h>
char *value; /* value given, or NULL if no value */
};
-/*
- * This list *must* be sorted by the "name" member.
- */
-
#define NUMDEFS (sizeof(def_table)/sizeof(def_table[0]))
static struct itemdef def_table[] = {
{"CHFN_RESTRICT", NULL},
{"UID_MAX", NULL},
{"UID_MIN", NULL},
{"UMASK", NULL},
- {"USERGROUPS_ENAB", NULL}
+ {"USERGROUPS_ENAB", NULL},
+ {NULL, NULL}
};
#ifndef LOGINDEFS
/*
* def_find - locate named item in table
*
- * Search through a sorted table of configurable items to locate the
+ * Search through a table of configurable items to locate the
* specified configuration option.
*/
static struct itemdef *def_find (const char *name)
{
- int min, max, curr, n;
-
- /*
- * Invariant - desired item in range [min:max].
- */
+ int n;
+ struct itemdef *ptr;
- min = 0;
- max = NUMDEFS - 1;
/*
- * Binary search into the table. Relies on the items being
- * sorted by name.
+ * Search into the table.
*/
- while (min <= max) {
- curr = (min + max) / 2;
-
- if (!(n = strcmp (def_table[curr].name, name)))
- return &def_table[curr];
-
- if (n < 0)
- min = curr + 1;
- else
- max = curr - 1;
- }
+ for (ptr = def_table; ptr->name; ptr++) {
+ if (!(n = strcmp (ptr->name, name)))
+ return ptr;
+ }
/*
* Item was never found.
subdir = libmisc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in getdate.c
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+# gettext.m4 serial 36 (gettext-0.14.3)
+dnl Copyright (C) 1995-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl default (if it is not specified or empty) is 'no-libtool'.
+dnl INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl depending on --{enable,disable}-{shared,static} and on the presence of
+dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl implementations (in libc or libintl) without the ngettext() function
+dnl will be ignored. If NEEDSYMBOL is specified and is
+dnl 'need-formatstring-macros', then GNU gettext implementations that don't
+dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries. If empty,
+dnl the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl and used.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl Catalog format: none
+dnl Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+ dnl Argument checking.
+ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+ define([gt_included_intl], ifelse([$1], [external], [no], [yes]))
+ define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+
+ AC_REQUIRE([AM_PO_SUBDIRS])dnl
+ ifelse(gt_included_intl, yes, [
+ AC_REQUIRE([AM_INTL_SUBDIR])dnl
+ ])
+
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ dnl Ideally we would do this search only after the
+ dnl if test "$USE_NLS" = "yes"; then
+ dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+ dnl the configure script would need to contain the same shell code
+ dnl again, outside any 'if'. There are two solutions:
+ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+ dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+ dnl documented, we avoid it.
+ ifelse(gt_included_intl, yes, , [
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+ ])
+
+ dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+ gt_INTL_MACOSX
+
+ dnl Set USE_NLS.
+ AM_NLS
+
+ ifelse(gt_included_intl, yes, [
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ ])
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+ ifelse(gt_included_intl, yes, [
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH(included-gettext,
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ ])
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
+
+ dnl Add a version number to the cache macros.
+ define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
+ define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
+ define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
+
+ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
+ gt_cv_func_gnugettext_libc=yes,
+ gt_cv_func_gnugettext_libc=no)])
+
+ if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ ifelse(gt_included_intl, yes, , [
+ AM_ICONV_LINK
+ ])
+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+ dnl even if libiconv doesn't exist.
+ AC_LIB_LINKFLAGS_BODY([intl])
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ gt_cv_func_gnugettext_libintl,
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ dnl Now see whether libintl exists and does not depend on libiconv.
+ AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+ gt_cv_func_gnugettext_libintl=yes,
+ gt_cv_func_gnugettext_libintl=no)
+ dnl Now see whether libintl exists and depends on libiconv.
+ if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+ [LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ gt_cv_func_gnugettext_libintl=yes
+ ])
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ fi
+
+ dnl If an already present or preinstalled GNU gettext() is found,
+ dnl use it. But if this macro is used in GNU gettext, and GNU
+ dnl gettext is already preinstalled in libintl, we update this
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
+ if test "$gt_cv_func_gnugettext_libc" = "yes" \
+ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ dnl Reset the values set by searching for libintl.
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+ dnl GNU gettext is not found in the C library.
+ dnl Fall back on included GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ CATOBJEXT=
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions to use GNU gettext tools.
+ CATOBJEXT=.gmo
+ fi
+ ])
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Some extra flags are needed during linking.
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ AC_DEFINE(ENABLE_NLS, 1,
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([whether to use NLS])
+ AC_MSG_RESULT([$USE_NLS])
+ if test "$USE_NLS" = "yes"; then
+ AC_MSG_CHECKING([where the gettext function comes from])
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ gt_source="external libintl"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ AC_MSG_RESULT([$gt_source])
+ fi
+
+ if test "$USE_NLS" = "yes"; then
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ AC_MSG_CHECKING([how to link with libintl])
+ AC_MSG_RESULT([$LIBINTL])
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+ fi
+
+ dnl For backward compatibility. Some packages may be using this.
+ AC_DEFINE(HAVE_GETTEXT, 1,
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ AC_DEFINE(HAVE_DCGETTEXT, 1,
+ [Define if the GNU dcgettext() function is already present or preinstalled.])
+ fi
+
+ dnl We need to process the po/ directory.
+ POSUB=po
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+ dnl to 'yes' because some of the testsuite requires it.
+ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+ BUILD_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(BUILD_INCLUDED_LIBINTL)
+ AC_SUBST(USE_INCLUDED_LIBINTL)
+ AC_SUBST(CATOBJEXT)
+
+ dnl For backward compatibility. Some configure.ins may be using this.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ DATADIRNAME=share
+ AC_SUBST(DATADIRNAME)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INSTOBJEXT=.mo
+ AC_SUBST(INSTOBJEXT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ GENCAT=gencat
+ AC_SUBST(GENCAT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLOBJS=
+ if test "$USE_INCLUDED_LIBINTL" = yes; then
+ INTLOBJS="\$(GETTOBJS)"
+ fi
+ AC_SUBST(INTLOBJS)
+
+ dnl Enable libtool support if the surrounding package wishes it.
+ INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+ ])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLLIBS="$LIBINTL"
+ AC_SUBST(INTLLIBS)
+
+ dnl Make all documented variables known to autoconf.
+ AC_SUBST(LIBINTL)
+ AC_SUBST(LTLIBINTL)
+ AC_SUBST(POSUB)
+])
+
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([gt_GLIBC2])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_ISC_POSIX])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_C_CONST])dnl
+ AC_REQUIRE([bh_C_SIGNED])dnl
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl
+ AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
+ AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+ AC_REQUIRE([gt_TYPE_WINT_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_REQUIRE([gt_TYPE_INTMAX_T])
+ AC_REQUIRE([gt_PRINTF_POSIX])
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([gl_GLIBC21])dnl
+ AC_REQUIRE([gt_INTDIV0])dnl
+ AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
+ AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
+ AC_REQUIRE([gt_INTTYPES_PRI])dnl
+ AC_REQUIRE([gl_XSIZE])dnl
+ AC_REQUIRE([gt_INTL_MACOSX])dnl
+
+ AC_CHECK_TYPE([ptrdiff_t], ,
+ [AC_DEFINE([ptrdiff_t], [long],
+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+ ])
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
+mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
+strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
+__fsetlocking])
+
+ dnl Use the _snprintf function only if it is declared (because on NetBSD it
+ dnl is defined as a weak alias of snprintf; we prefer to use the latter).
+ gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
+ gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+ gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
+ gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
+ gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
+
+ case $gt_cv_func_printf_posix in
+ *yes) HAVE_POSIX_PRINTF=1 ;;
+ *) HAVE_POSIX_PRINTF=0 ;;
+ esac
+ AC_SUBST([HAVE_POSIX_PRINTF])
+ if test "$ac_cv_func_asprintf" = yes; then
+ HAVE_ASPRINTF=1
+ else
+ HAVE_ASPRINTF=0
+ fi
+ AC_SUBST([HAVE_ASPRINTF])
+ if test "$ac_cv_func_snprintf" = yes; then
+ HAVE_SNPRINTF=1
+ else
+ HAVE_SNPRINTF=0
+ fi
+ AC_SUBST([HAVE_SNPRINTF])
+ if test "$ac_cv_func_wprintf" = yes; then
+ HAVE_WPRINTF=1
+ else
+ HAVE_WPRINTF=0
+ fi
+ AC_SUBST([HAVE_WPRINTF])
+
+ AM_ICONV
+ AM_LANGINFO_CODESET
+ if test $ac_cv_header_locale_h = yes; then
+ gt_LC_MESSAGES
+ fi
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+ fi
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+ dnl compile.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+])
+
+
+dnl Checks for special options needed on MacOS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
+[
+ dnl Check for API introduced in MacOS X 10.2.
+ AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+ gt_cv_func_CFPreferencesCopyAppValue,
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -framework CoreFoundation"
+ AC_TRY_LINK([#include <CFPreferences.h>],
+ [CFPreferencesCopyAppValue(NULL, NULL)],
+ [gt_cv_func_CFPreferencesCopyAppValue=yes],
+ [gt_cv_func_CFPreferencesCopyAppValue=no])
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+ AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
+ [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+ fi
+ dnl Check for API introduced in MacOS X 10.3.
+ AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -framework CoreFoundation"
+ AC_TRY_LINK([#include <CFLocale.h>], [CFLocaleCopyCurrent();],
+ [gt_cv_func_CFLocaleCopyCurrent=yes],
+ [gt_cv_func_CFLocaleCopyCurrent=no])
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
+ [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+ AC_SUBST([INTL_MACOSX_LIBS])
+])
+
+
+dnl gt_CHECK_DECL(FUNC, INCLUDES)
+dnl Check whether a function is declared.
+AC_DEFUN([gt_CHECK_DECL],
+[
+ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
+ [AC_TRY_COMPILE([$2], [
+#ifndef $1
+ char *p = (char *) $1;
+#endif
+], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
+ if test $ac_cv_have_decl_$1 = yes; then
+ gt_value=1
+ else
+ gt_value=0
+ fi
+ AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
+ [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
--- /dev/null
+# iconv.m4 serial AM4 (gettext-0.11.3)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. The first
+ dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_func_iconv=yes)
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ AC_MSG_CHECKING([how to link with libiconv])
+ AC_MSG_RESULT([$LIBICONV])
+ else
+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+ dnl either.
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+ AC_SUBST(LIBICONV)
+ AC_SUBST(LTLIBICONV)
+])
+
+AC_DEFUN([AM_ICONV],
+[
+ AM_ICONV_LINK
+ if test "$am_cv_func_iconv" = yes; then
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL(am_cv_proto_iconv, [
+ AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ AC_MSG_RESULT([$]{ac_t:-
+ }[$]am_cv_proto_iconv)
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+ [Define as const if the declaration of iconv() needs const.])
+ fi
+])
--- /dev/null
+# lib-ld.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]* | [A-Za-z]:[\\/]*)]
+ [re_direlt='/[^/][^/]*/\.\./']
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break ;;
+ *)
+ test "$with_gnu_ld" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
--- /dev/null
+# lib-link.m4 serial 6 (gettext-0.14.3)
+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ(2.50)
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+ dnl results of this search when this library appears as a dependency.
+ HAVE_LIB[]NAME=yes
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed lib[]Name and not disabled its use
+ dnl via --without-lib[]Name-prefix, he wants to use it.
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+ ac_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIB[]NAME"
+ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+ LIBS="$ac_save_LIBS"
+ ])
+ if test "$ac_cv_lib[]Name" = yes; then
+ HAVE_LIB[]NAME=yes
+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+ AC_MSG_CHECKING([how to link with lib[]$1])
+ AC_MSG_RESULT([$LIB[]NAME])
+ else
+ HAVE_LIB[]NAME=no
+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+ dnl $INC[]NAME either.
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIB[]NAME=
+ LTLIB[]NAME=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+ dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+ ])
+ wl="$acl_cv_wl"
+ libext="$acl_cv_libext"
+ shlibext="$acl_cv_shlibext"
+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ hardcode_direct="$acl_cv_hardcode_direct"
+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ dnl Determine whether the user wants rpath handling at all.
+ AC_ARG_ENABLE(rpath,
+ [ --disable-rpath do not hardcode runtime library paths],
+ :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib$1-prefix],
+[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
+ --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+])
+ dnl Search the library and its dependencies in $additional_libdir and
+ dnl $LDFLAGS. Using breadth-first-seach.
+ LIB[]NAME=
+ LTLIB[]NAME=
+ INC[]NAME=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='$1 $2'
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+ dnl or AC_LIB_HAVE_LINKFLAGS call.
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+ else
+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+ dnl that this library doesn't exist. So just drop it.
+ :
+ fi
+ else
+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ if test $use_additional = yes; then
+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ found_dir="$additional_libdir"
+ found_so="$additional_libdir/lib$name.$shlibext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ else
+ if test -f "$additional_libdir/lib$name.$libext"; then
+ found_dir="$additional_libdir"
+ found_a="$additional_libdir/lib$name.$libext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ found_dir="$dir"
+ found_so="$dir/lib$name.$shlibext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ else
+ if test -f "$dir/lib$name.$libext"; then
+ found_dir="$dir"
+ found_a="$dir/lib$name.$libext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ dnl Found the library.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ dnl Linking with a shared library. We attempt to hardcode its
+ dnl directory into the executable's runpath, unless it's the
+ dnl standard /usr/lib.
+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ dnl No hardcoding is needed.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ dnl The hardcoding into $LIBNAME is system dependent.
+ if test "$hardcode_direct" = yes; then
+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+ dnl resulting binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ dnl Rely on "-L$found_dir".
+ dnl But don't add it if it's already contained in the LDFLAGS
+ dnl or the already constructed $LIBNAME
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+ fi
+ if test "$hardcode_minus_L" != no; then
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+ dnl here, because this doesn't fit in flags passed to the
+ dnl compiler. So give up. No hardcoding. This affects only
+ dnl very old systems.
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ dnl Linking with a static library.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+ else
+ dnl We shouldn't come here, but anyway it's good to have a
+ dnl fallback.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+ fi
+ fi
+ dnl Assume the include files are nearby.
+ additional_includedir=
+ case "$found_dir" in
+ */lib | */lib/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ dnl Potentially add $additional_includedir to $INCNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 3. if it's already present in $CPPFLAGS or the already
+ dnl constructed $INCNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INC[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $INCNAME.
+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ dnl Look for dependencies.
+ if test -n "$found_la"; then
+ dnl Read the .la file. It defines the variables
+ dnl dlname, library_names, old_library, dependency_libs, current,
+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ dnl We use only dependency_libs.
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 3. if it's already present in $LDFLAGS or the already
+ dnl constructed $LIBNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LIBNAME.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LTLIBNAME.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ dnl Handle this in the next round.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ dnl Handle this in the next round. Throw away the .la's
+ dnl directory; it is already contained in a preceding -L
+ dnl option.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ dnl Most likely an immediate library name.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ dnl Didn't find the library; assume it is in the system directories
+ dnl known to the linker and runtime loader. (All the system
+ dnl directories known to the linker should also be known to the
+ dnl runtime loader, otherwise the system is severely misconfigured.)
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user must
+ dnl pass all path elements in one option. We can arrange that for a
+ dnl single library, but not when more than one $LIBNAMEs are used.
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ done
+ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ dnl When using libtool, the option that works for both libraries and
+ dnl executables is -R. The -R options are cumulative.
+ for found_dir in $ltrpathdirs; do
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ done
+ fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+ for element in [$2]; do
+ haveit=
+ for x in $[$1]; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ [$1]="${[$1]}${[$1]:+ }$element"
+ fi
+ done
+])
--- /dev/null
+# lib-prefix.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib-prefix],
+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+ --without-lib-prefix don't search for libraries in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+])
+ if test $use_additional = yes; then
+ dnl Potentially add $additional_includedir to $CPPFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's already present in $CPPFLAGS,
+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ for x in $CPPFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $CPPFLAGS.
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ dnl Potentially add $additional_libdir to $LDFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's already present in $LDFLAGS,
+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ for x in $LDFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LDFLAGS.
+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ $1
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+])
--- /dev/null
+# nls.m4 serial 2 (gettext-0.14.3)
+dnl Copyright (C) 1995-2003, 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ(2.50)
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+])
+
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+ dnl Tell automake >= 1.10 to complain if mkinstalldirs is missing.
+ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([mkinstalldirs])])
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+ dnl Try to locate it.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ case "$ac_aux_dir" in
+ /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+ *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+ esac
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+])
--- /dev/null
+# po.m4 serial 7 (gettext-0.14.3)
+dnl Copyright (C) 1995-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ(2.50)
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+ AC_REQUIRE([AM_NLS])dnl
+
+ dnl Perform the following tests also if --disable-nls has been given,
+ dnl because they are needed for "make dist" to work.
+
+ dnl Search for GNU msgfmt in the PATH.
+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+ dnl The second test excludes FreeBSD msgfmt.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+ dnl Search for GNU xgettext 0.12 or newer in the PATH.
+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+ dnl The second test excludes FreeBSD xgettext.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+
+ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU msgfmt.
+ if test "$GMSGFMT" != ":"; then
+ dnl If it is no GNU msgfmt we define it as : so that the
+ dnl Makefiles still can work.
+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+ (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+ AC_MSG_RESULT(
+ [found $GMSGFMT program is not GNU msgfmt; ignore it])
+ GMSGFMT=":"
+ fi
+ fi
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+ fi
+
+ AC_OUTPUT_COMMANDS([
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done],
+ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+ ])
+])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+ # When this code is run, in config.status, two variables have already been
+ # set:
+ # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+ # - LINGUAS is the value of the environment variable LINGUAS at configure
+ # time.
+
+changequote(,)dnl
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ # Find a way to echo strings without interpreting backslash.
+ if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='echo'
+ else
+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='printf %s\n'
+ else
+ echo_func () {
+ cat <<EOT
+$*
+EOT
+ }
+ gt_echo='echo_func'
+ fi
+ fi
+
+ # A sed script that extracts the value of VARIABLE from a Makefile.
+ sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^[ ]*VARIABLE[ ]*=/{
+ # Seen the first line of the variable definition.
+ s/^[ ]*VARIABLE[ ]*=//
+ ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+ # Set POTFILES to the value of the Makefile variable POTFILES.
+ sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
+ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+ # Compute POTFILES_DEPS as
+ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+ POTFILES_DEPS=
+ for file in $POTFILES; do
+ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+ done
+ POMAKEFILEDEPS=""
+
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+ sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
+ ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+ fi
+ # Hide the ALL_LINGUAS assigment from automake.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ # Compute PROPERTIESFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+ # Compute CLASSFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+ # Compute QMFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+ # Compute MSGFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+ # Compute RESOURCESDLLFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ PROPERTIESFILES=
+ CLASSFILES=
+ QMFILES=
+ MSGFILES=
+ RESOURCESDLLFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+ CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+ QMFILES="$QMFILES $srcdirpre$lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ JAVACATALOGS=
+ QTCATALOGS=
+ TCLCATALOGS=
+ CSHARPCATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+ QTCATALOGS="$QTCATALOGS $lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ fi
+
+ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+ if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+ @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+ \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+ @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+ \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if test -n "$POMAKEFILEDEPS"; then
+ cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+ fi
+ mv "$ac_file.tmp" "$ac_file"
+])
--- /dev/null
+# progtest.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+AC_PREREQ(2.50)
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ [[\\/]]* | ?:[[\\/]]*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
# subdirectories for translated manual pages
SUBDIRS = cs de es fr hu id it ja ko pl pt_BR ru zh_CN zh_TW
+man_XMANS = \
+ chage.1.xml \
+ chfn.1.xml \
+ chpasswd.8.xml \
+ chsh.1.xml \
+ expiry.1.xml \
+ faillog.5.xml \
+ faillog.8.xml \
+ gpasswd.1.xml \
+ groupadd.8.xml \
+ groupdel.8.xml \
+ groupmems.8.xml \
+ groupmod.8.xml \
+ groups.1.xml \
+ grpck.8.xml \
+ gshadow.5.xml \
+ lastlog.8.xml \
+ limits.5.xml \
+ login.1.xml \
+ login.access.5.xml \
+ login.defs.5.xml \
+ logoutd.8.xml \
+ mkpasswd.8.xml \
+ newusers.8.xml \
+ passwd.1.xml \
+ passwd.5.xml \
+ porttime.5.xml \
+ pwck.8.xml \
+ pwconv.8.xml \
+ shadow.3.xml \
+ shadow.5.xml \
+ su.1.xml \
+ suauth.5.xml \
+ useradd.8.xml \
+ userdel.8.xml \
+ usermod.8.xml \
+ vipw.8.xml
+
man_MANS = \
chage.1 \
chfn.1 \
vipw.8
EXTRA_DIST = $(man_MANS) \
+ $(man_XMANS) \
+ id.1.xml \
+ pw_auth.3.xml \
+ shadowconfig.8.xml \
+ sulogin.8.xml \
id.1 \
pw_auth.3 \
shadowconfig.8 \
sulogin.8
+
+all:
+
+shadow-man-pages.pot:
+ xml2po -o $@ $(man_XMANS)
+
subdir = man
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
# subdirectories for translated manual pages
SUBDIRS = cs de es fr hu id it ja ko pl pt_BR ru zh_CN zh_TW
+man_XMANS = \
+ chage.1.xml \
+ chfn.1.xml \
+ chpasswd.8.xml \
+ chsh.1.xml \
+ expiry.1.xml \
+ faillog.5.xml \
+ faillog.8.xml \
+ gpasswd.1.xml \
+ groupadd.8.xml \
+ groupdel.8.xml \
+ groupmems.8.xml \
+ groupmod.8.xml \
+ groups.1.xml \
+ grpck.8.xml \
+ gshadow.5.xml \
+ lastlog.8.xml \
+ limits.5.xml \
+ login.1.xml \
+ login.access.5.xml \
+ login.defs.5.xml \
+ logoutd.8.xml \
+ mkpasswd.8.xml \
+ newusers.8.xml \
+ passwd.1.xml \
+ passwd.5.xml \
+ porttime.5.xml \
+ pwck.8.xml \
+ pwconv.8.xml \
+ shadow.3.xml \
+ shadow.5.xml \
+ su.1.xml \
+ suauth.5.xml \
+ useradd.8.xml \
+ userdel.8.xml \
+ usermod.8.xml \
+ vipw.8.xml
+
man_MANS = \
chage.1 \
chfn.1 \
vipw.8
EXTRA_DIST = $(man_MANS) \
+ $(man_XMANS) \
+ id.1.xml \
+ pw_auth.3.xml \
+ shadowconfig.8.xml \
+ sulogin.8.xml \
id.1 \
pw_auth.3 \
shadowconfig.8 \
uninstall uninstall-am uninstall-info-am uninstall-man \
uninstall-man1 uninstall-man3 uninstall-man5 uninstall-man8
+
+all:
+
+shadow-man-pages.pot:
+ xml2po -o $@ $(man_XMANS)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
-.\"$Id: chage.1,v 1.24 2005/04/25 15:15:17 kloczek Exp $
+.\"$Id: chage.1,v 1.25 2005/04/26 12:22:08 kloczek Exp $
.\" Copyright 1990 - 1994 Julianne Frances Haugh
.\" All rights reserved.
.\"
this field indicates that the user may change her password at any time.
.IP "\fB\-M\fR \fImaxdays\fR"
Set maximum number of days during which a password is valid. When
-\fImaxdays\fR plus fIlastday\fR is less than the current day, the user will
+\fImaxdays\fR plus \fIlastday\fR is less than the current day, the user will
be required to change her password before being able to use her account.
This occurrence can be planned for in advance by use of the \fB\-W\fR option,
which provides the user with advance warning.
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='chage.1'>
+ <!-- $Id: chage.1.xml,v 1.7 2005/04/26 12:31:14 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>chage</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>chage</refname>
+ <refpurpose>change user password expiry information</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>chage</command>
+ <arg choice='opt'>-m <replaceable>mindays</replaceable></arg>
+ <arg choice='opt'>-M <replaceable>maxdays</replaceable></arg>
+ <arg choice='opt'>-d <replaceable>lastday</replaceable></arg>
+ <arg choice='opt'>-I <replaceable>inactive</replaceable></arg>
+ <sbr/>
+ <arg choice='opt'>-E <replaceable>expiredate</replaceable></arg>
+ <arg choice='opt'>-W <replaceable>warndays</replaceable></arg>
+ <arg choice='plain'><replaceable>user</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>chage</command>
+ <arg choice='plain'>-l <replaceable>user</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para><command>chage</command> command changes the number of days
+ between passwordchanges and the date of the last password change.
+ This information is used by the system to determine when a user must
+ change her password.
+ </para>
+ <para>The <command>chage</command> command is restricted to the root
+ user, except for the <option>-l</option> option, which may be used by
+ an unprivileged user to determine when her password or account is due
+ to expire.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ The options which apply to the <command>chage</command> command are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-d</option> <replaceable>lastday</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Set the number of days since January 1st, 1970 when the password
+ was last changed. The date may also be expressed in the format
+ YYYY-MM-DD (or the format more commonly used in your area).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-E</option> <replaceable>expiredate</replaceable>
+ </term>
+ <listitem>
+ <para>Set the date on which the user's account will no longer be
+ accessible. The <emphasis remap='I'>expiredate</emphasis> option
+ is the number of days since January 1, 1970 on which the
+ accounted is locked. The date may also be expressed in the
+ format YYYY-MM-DD (or the format more commonly used in your
+ area). A user whose account is locked must contact the system
+ administrator before being able to use the system again. Passing
+ the number <emphasis remap='I'>-1</emphasis> as the <emphasis
+ remap='I'>expiredate</emphasis> will remove an accounts
+ expiration date.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-I</option> <replaceable>inactive</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Set the number of days of inactivity after a password has
+ expired before the account is locked. The <emphasis
+ remap='I'>inactive</emphasis> option is the number of days of
+ inactivity. A value of 0 disables this feature. A user whose
+ account is locked must contact the system administrator before
+ being able to use the system again.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-m</option> <replaceable>mindays</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Set the minimum number of days between password changes. A value
+ of zero for this field indicates that the user may change her
+ password at any time.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-M</option> <replaceable>maxdays</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Set maximum number of days during which a password is valid.
+ When <emphasis remap='I'>maxdays</emphasis> plus <emphasis
+ remap='I'>lastday</emphasis> is less than the current day, the
+ user will be required to change her password before being able
+ to use her account. This occurrence can be planned for in
+ advance by use of the <option>-W</option> option, which provides
+ the user with advance warning.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-W</option> <replaceable>warndays</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Set the number of days of warning before a password change is
+ required. The <emphasis remap='I'>warndays</emphasis> option is
+ the number of days prior to the password expiring that a user
+ will be warned her password is about to expire.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ If none of the options are selected, <command>chage</command> operates
+ in an interactive fashion, prompting the user with the current values
+ for all of the fields. Enter the new value to change the field, or
+ leave the line blank to use the current value. The current value is
+ displayed between a pair of <emphasis remap='B'>[ ]</emphasis> marks.
+ </para>
+ </refsect1>
+ <refsect1 id='note'>
+ <title>NOTE</title>
+ <para>
+ The <command>chage</command> program requires shadow password file to
+ be available. Its functionality is not available when passwords are
+ stored in the passwd file.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term>
+ <filename>/etc/passwd</filename>
+ </term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <filename>/etc/shadow</filename>
+ </term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>.
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh <jockgrrl@ix.netcom.com></para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='chfn.1'>
+ <!-- $Id: chfn.1.xml,v 1.8 2005/04/27 16:19:48 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>chfn</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>chfn</refname>
+ <refpurpose>change real user name and information</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>chfn</command>
+ <arg choice='opt'>-f <replaceable>full_name</replaceable></arg>
+ <arg choice='opt'>-r <replaceable>room_no</replaceable></arg>
+ <arg choice='opt'>-w <replaceable>work_ph</replaceable></arg>
+ <arg choice='opt'>-h <replaceable>home_ph</replaceable></arg>
+ <arg choice='opt'>-o <replaceable>other</replaceable></arg>
+ <arg choice='opt'><replaceable>user</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para><command>chfn</command> changes user fullname, office number,
+ office extension, and home phone number information for a user's
+ account. This information is typically printed by <citerefentry>
+ <refentrytitle>finger</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry> and similar programs. A normal user may only change
+ the fields for her own account, the super user may change the fields
+ for any account. Also, only the super user may use the
+ <option>-o</option> option to change the undefined portions of the
+ GECOS field.
+ </para>
+
+ <para>The only restriction placed on the contents of the fields is that
+ no control characters may be present, nor any of comma, colon, or
+ equal sign. The <emphasis remap='I'>other</emphasis> field does not
+ have this restriction, and is used to store accounting information
+ used by other applications.
+ </para>
+
+ <para> If none of the options are selected, <command>chfn</command>
+ operates in an interactive fashion, prompting the user with the
+ current values for all of the fields. Enter the new value to change
+ the field, or leave the line blank to use the current value. The
+ current value is displayed between a pair of <emphasis remap='B'>[
+ ]</emphasis> marks. Without options, chfn prompts for the current
+ user account.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh <jockgrrl@ix.netcom.com></para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='chpasswd.8'>
+ <!-- $Id: chpasswd.8.xml,v 1.6 2005/04/27 16:22:25 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>chpasswd</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>chpasswd</refname>
+ <refpurpose>update passwords in batch mode</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>chpasswd</command>
+ <arg choice='opt'>
+ <replaceable>options</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>chpasswd</command> reads a list of user name and password
+ pairs from standard input and uses this information to update a group
+ of existing users. Each line is of the format:
+ </para>
+ <para>
+ <emphasis remap='I'>user_name</emphasis>:<emphasis
+ remap='I'>password</emphasis>
+ </para>
+ <para>By default the supplied password must be in clear-text. Default
+ encription algoritm is DES. Also the password age will be updated, if
+ present.
+ </para>
+ <para>This command is intended to be used in a large system environment
+ where many accounts are created at a single time.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ The options which apply to the <command>chpasswd</command> command
+ are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term><option>-e</option>, <option>--encrypted</option></term>
+ <listitem>
+ <para>Supplied passwords are in encrypted form.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option>, <option>--help</option></term>
+ <listitem>
+ <para>Display help message and exit.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-m</option>, <option>--md5</option></term>
+ <listitem>
+ <para>Use MD5 encryption instead DES when the supplied passwords
+ are not encrypted.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>Remember keep protected for reading by others fille passed to
+ standard input <command>chpasswd</command> command if it contains
+ unencrypted passwords.
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>newusers</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='chsh1'>
+ <!-- $Id: chsh.1.xml,v 1.6 2005/04/27 16:24:09 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>chsh</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>chsh</refname>
+ <refpurpose>change login shell</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>chsh</command>
+ <arg choice='opt'>-s <replaceable>login_shell</replaceable></arg>
+ <arg choice='opt'><replaceable>user</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>chsh</command> changes the user login shell. This determines
+ the name of the user's initial login command. A normal user may only
+ change the login shell for her own account, the super user may change
+ the login shell for any account.
+ </para>
+
+ <para>The only restrictions placed on the login shell is that the
+ command name must be listed in <filename>/etc/shells</filename>,
+ unless the invoker is the super-user, and then any value may be added.
+ An account with a restricted login shell may not change her login
+ shell. For this reason, placing <filename>/bin/rsh</filename> in
+ <filename>/etc/shells</filename> is discouraged since accidentally
+ changing to a restricted shell would prevent the user from every
+ changing her login shell back to its original value.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>If the <option>-s</option> option is not selected,
+ <command>chsh</command> operates in an interactive fashion, prompting
+ the user with the current login shell. Enter the new value to change
+ the shell, or leave the line blank to use the current one. The current
+ shell is displayed between a pair of <emphasis remap='B'>[ ]</emphasis>
+ marks.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shells</filename></term>
+ <listitem>list of valid login shells</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh <jockgrrl@ix.netcom.com></para>
+ </refsect1>
+</refentry>
subdir = man/cs
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = man/de
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = man/es
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='expiry.1'>
+ <!-- $Id: expiry.1.xml,v 1.6 2005/04/27 16:25:27 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>expiry</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>expiry</refname>
+ <refpurpose>check and enforce password expiration policy</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>expiry</command>
+ <arg choice='opt'>-c </arg>
+ <arg choice='opt'>-f </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>expiry</command> checks (<option>-c</option>) the current
+ password expiration and forces (<option>-f</option>) changes when
+ required. It is callable as a normal user command.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Ben Collins <bcollins@debian.org></para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='faillog.5'>
+ <!-- $Id: faillog.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>faillog</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>faillog</refname>
+ <refpurpose>Login failure logging file</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <filename>/var/log/faillog</filename> maintains a count of login
+ failures and the limits for each account. The file is fixed length
+ record, indexed by numerical UID. Each record contains the count of
+ login failures since the last successful login; the maximum number of
+ failures before the account is disabled; the line the last login
+ failure occured on; and the date the last login failure occured.
+ </para>
+
+ <para>The structure of the file is</para>
+ <literallayout remap='DS'>
+ struct faillog {
+ short fail_cnt;
+ short fail_max;
+ char fail_line[12];
+ time_t fail_time;
+ };
+ </literallayout>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/var/log/faillog</filename></term>
+ <listitem>login failure log</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>faillog</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='faillog.8'>
+ <!-- $Id: faillog.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>faillog</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>faillog</refname>
+ <refpurpose>display faillog records or set login failure limits</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>faillog</command>
+ <arg choice='opt'>
+ <replaceable>options</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>faillog</command> formats the contents of the failure log
+ from <filename>/var/log/faillog</filename> database. It also can be
+ used for maintains failure counters and limits. Run
+ <command>faillog</command> without arguments display only list of user
+ faillog records who have ever had a login failure.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ The options which apply to the <command>faillog</command> command
+ are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term><option>-a</option>, <option>--all</option></term>
+ <listitem>
+ <para>Display faillog records for all users.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option>, <option>--help</option></term>
+ <listitem>
+ <para>Display help message and exit.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-l</option>, <option>--lock-time</option>
+ <replaceable>SEC</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Lock accout to <emphasis remap='I'>SEC</emphasis>
+ seconds after failed login.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-m</option>, <option>--maximum</option>
+ <replaceable>MAX</replaceable>
+ </term>
+ <listitem>
+ <para>Set maiximum number of login failures after the account is
+ disabled to <emphasis remap='I'>MAX</emphasis>. Selecting
+ <emphasis remap='I'>MAX</emphasis> value of 0 has the effect of
+ not placing a limit on the number of failed logins. The maximum
+ failure count should always be 0 for <emphasis
+ remap='B'>root</emphasis> to prevent a denial of services attack
+ against the system.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-r</option>, <option>--reset</option></term>
+ <listitem>
+ <para>Reset the counters of login failures or one recor if used
+ with -u <emphasis remap='I'>LOGIN</emphasis> option. Write
+ access to <filename>/var/log/faillog</filename> is required for
+ this option.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-t</option>, <option>--time</option>
+ <replaceable>DAYS</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Display faillog records more recent than <emphasis
+ remap='I'>DAYS</emphasis>. The <option>-t</option> flag overrides
+ the use of <option>-u</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-u</option>, <option>--user</option>
+ <replaceable>LOGIN</replaceable>
+ </term>
+ <listitem>
+ <para>Display faillog record or maintains failure counters and
+ limits (if used with <option>-l</option>, <option>-m</option> or
+ <option>-r</option> options) only for user with <emphasis
+ remap='I'>LOGIN</emphasis>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>
+ <command>faillog</command> only prints out users with no successful
+ login since the last failure. To print out a user who has had a
+ successful login since their last failure, you must explicitly request
+ the user with the <option>-u</option> flag, or print out all users
+ with the <option>-a</option> flag.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/var/log/faillog</filename></term>
+ <listitem>failure logging file</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>faillog</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
subdir = man/fr
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='gpasswd1'>
+ <!-- $Id: gpasswd.1.xml,v 1.7 2005/04/27 18:20:35 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>gpasswd</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>gpasswd</refname>
+ <refpurpose>administer the /etc/group file</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>gpasswd</command>
+ <arg choice='plain'>
+ <replaceable>group</replaceable>
+ </arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>gpasswd</command>
+ <arg choice='plain'>-a <replaceable>user</replaceable></arg>
+ <arg choice='plain'><replaceable>group</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>gpasswd</command>
+ <arg choice='plain'>-d <replaceable>user</replaceable></arg>
+ <arg choice='plain'><replaceable>group</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>gpasswd</command>
+ <arg choice='plain'>-R <replaceable>group</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>gpasswd</command>
+ <arg choice='plain'>-r <replaceable>group</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>gpasswd</command>
+ <arg choice='opt' rep='repeat'>-A <replaceable>user,</replaceable></arg>
+ <arg choice='opt' rep='repeat'>-M <replaceable>user,</replaceable></arg>
+ <arg choice='plain'><replaceable>group</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>gpasswd</command> is used to administer the
+ <filename>/etc/group</filename> file (and
+ <filename>/etc/gshadow</filename> file if compiled with SHADOWGRP
+ defined). Every group can have administrators, members and a password.
+ System administrator can use <option>-A</option> option to define
+ group administrator(s) and <option>-M</option> option to define
+ members and has all rights of group administrators and members.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ Group administrator can add and delete users using <option>-a</option>
+ and <option>-d</option> options respectively. Administrators can use
+ <option>-r</option> option to remove group password. When no password
+ is set only group members can use <command>newgrp</command> to join
+ the group. Option <option>-R</option> disables access via a password
+ to the group through <command>newgrp</coamand> command (however
+ members will still be able to switch to this group).
+ </para>
+
+ <para><command>gpasswd</command> called by a group administrator with
+ group name only prompts for the group password. If password is set the
+ members can still <citerefentry>
+ <refentrytitle>newgrp</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry> without a password, non-members must supply the password.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/gshadow</filename></term>
+ <listitem>secure group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>newgrp</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>grpck</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>gshadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Rafal Maszkowski <rzm@pdi.net></para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='groupadd.8'>
+ <!-- $Id: groupadd.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>groupadd</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>groupadd</refname>
+ <refpurpose>Create a new group</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>groupadd</command>
+ <arg choice='opt'>
+ <arg choice='plain'>-g <replaceable>gid</replaceable></arg>
+ <arg choice='opt'>-o </arg>
+ </arg>
+ <arg choice='opt'>-f </arg>
+ <arg choice='plain'>
+ <replaceable>group</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>The <command>groupadd</command> command creates a new group
+ account using the values specified on the command line and the default
+ values from the system. The new group will be entered into the system
+ files as needed.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ The options which apply to the <command>groupadd</command> command
+ are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-f</option>
+ </term>
+ <listitem>
+ <para>This option causes to just exit with success status if the
+ specified group already exists. With <option>-g</option>, if
+ specified gid already exists, other (unique) gid is chosen (i.e.
+ <option>-g</option> is turned off).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-g</option> <replaceable>gid</replaceable>
+ </term>
+ <listitem>
+ <para>The numerical value of the group's ID. This value must be
+ unique, unless the <option>-o</option> option is used. The value
+ must be non-negative. The default is to use the smallest ID
+ value greater than 999 and greater than every other group.
+ Values between 0 and 999 are typically reserved for system
+ accounts.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/gshadow</filename></term>
+ <listitem>secure group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='exit_values'>
+ <title>EXIT VALUES</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <command>groupadd</command> command exits with the
+ following values:
+ </term>
+ <listitem>
+ <!-- .br -->
+ <para>
+ <literal>0</literal> - success
+ <!-- .br -->
+ <literal>2</literal> - invalid command syntax
+ <!-- .br -->
+ <literal>3</literal> - invalid argument to option
+ <!-- .br -->
+ <literal>4</literal> - gid not unique (when -o not
+ used) <!-- .br -->
+ <literal>9</literal> - group name not unique
+ <!-- .br -->
+ <literal>10</literal> - can't update group file
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='groupdel.8'>
+ <!-- $Id: groupdel.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>groupdel</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>groupdel</refname>
+ <refpurpose>Delete a group</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>groupdel</command>
+ <arg choice='plain'>
+ <replaceable>group</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para> The <command>groupdel</command> command modifies the system
+ account files, deleting all entries that refer to <emphasis
+ remap='I'>group</emphasis>. The named group must exist.
+ </para>
+
+ <para>You must manually check all filesystems to insure that no files
+ remain with the named group as the file group ID.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>You may not remove the primary group of any existing user. You
+ must remove the user before you remove the group.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/gshadow</filename></term>
+ <listitem>secure group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='exit_values'>
+ <title>EXIT VALUES</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <command>groupdel</command> command exits with the
+ following values:
+ </term>
+ <listitem>
+ <!-- .br -->
+ <para>
+ <literal>0</literal> - success
+ <!-- .br -->
+ <literal>2</literal> - invalid command syntax
+ <!-- .br -->
+ <literal>6</literal> - specified group doesn't exist
+ <!-- .br -->
+ <literal>8</literal> - can't remove user's primary
+ group <!-- .br -->
+ <literal>10</literal> - can't update group file
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='groupmems.8'>
+ <!-- $Id: groupmems.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>groupmems</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>groupmems</refname>
+ <refpurpose>Administer members of a user's primary group</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>groupmems</command>
+ <group choice='plain'>
+ <arg choice='plain'>-a <replaceable>user_name</replaceable></arg>
+ <arg choice='plain'>-d <replaceable>user_name</replaceable></arg>
+ <arg choice='plain'>-l </arg><arg choice='plain'>-D </arg>
+ <arg choice='opt'>-g <replaceable>group_name</replaceable></arg>
+ </group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ The <command>groupmems</command> utility allows a user to administer
+ his/her own group membership list without the requirement of super
+ user privileges. The <command>groupmems</command> utility is for
+ systems that configure its users to be in their own name sake primary
+ group (i.e., guest / guest).
+ </para>
+
+ <para>Only the super user, as administrator, can use
+ <command>groupmems</command> to alter the memberships of other groups.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ The options which apply to the <command>groupmems</command> command
+ are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term><option>-a</option> <replaceable>user_name</replaceable></term>
+ <listitem>
+ <para>Add a new user to the group membership list.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-d</option> <replaceable>user_name</replaceable></term>
+ <listitem>
+ <para>Delete a user from the group membership list.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-D</option></term>
+ <listitem>
+ <para>Delete all users from the group membership list.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-g</option> <replaceable>group_name</replaceable></term>
+ <listitem>
+ <para>The super user can specify which group membership
+ list to modify.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-l</option></term>
+ <listitem>
+ <para>List the group membership list.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='setup'>
+ <title>SETUP</title>
+ <para>
+ The <command>groupmems</command> executable should be in mode
+ <literal>2770</literal> as user <emphasis remap='B'>root</emphasis>
+ and in group <emphasis remap='B'>groups</emphasis>. The system
+ administrator can add users to group groups to allow or disallow them
+ using the <command>groupmems</command> utility to manage their own
+ group membership list.
+ </para>
+
+ <para> $ groupadd -r groups
+ <!-- .br -->
+ $ chmod 2770 groupmems
+ <!-- .br -->
+ $ chown root.groups groupmems
+ <!-- .br -->
+ $ groupmems -g groups -a gk4
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/gshadow</filename></term>
+ <listitem>secure group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>George Kraft IV (gk4@us.ibm.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='groupmod.8'>
+ <!-- $Id: groupmod.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>groupmod</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>groupmod</refname>
+ <refpurpose>modify a group</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>groupmod</command>
+ <arg choice='opt'>
+ <arg choice='plain'>-g <replaceable>gid</replaceable></arg>
+ <arg choice='opt'>-o </arg>
+ </arg>
+ <arg choice='opt'>-n <replaceable>new_group_name</replaceable></arg>
+ <arg choice='plain'><replaceable>group</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ The <command>groupmod</command> command modifies the system account
+ files to reflect the changes that are specified on the command line.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ The options which apply to the <command>groupmod</command> command
+ are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-g</option> <replaceable>gid</replaceable>
+ </term>
+ <listitem>
+ <para>The numerical value of the group's ID. This value must be
+ unique, unless the <option>-o</option> option is used. The value
+ must be non-negative. Values between 0 and 999 are typically
+ reserved for system groups. Any files which the old group ID is
+ the file group ID must have the file group ID changed manually.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-n</option> <replaceable>new_group_name</replaceable></term>
+ <listitem>
+ <para> The name of the group will be changed from <emphasis
+ remap='I'>group</emphasis> to <emphasis
+ remap='I'>new_group_name</emphasis>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/gshadow</filename></term>
+ <listitem>secure group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='exit_values'>
+ <title>EXIT VALUES</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <command>groupmod</command> command exits with the
+ following values:
+ </term>
+ <listitem>
+ <!-- .br -->
+ <para>
+ <literal>0</literal> - success
+ <!-- .br -->
+ <literal>2</literal> - bad command syntax
+ <!-- .br -->
+ <literal>3</literal> - invalid argument to option
+ <!-- .br -->
+ <literal>4</literal> - gid already in use (and no -o)
+ <!-- .br -->
+ <literal>6</literal> - specified group doesn't exist
+ <!-- .br -->
+ <literal>9</literal> - group name already in use
+ <!-- .br -->
+ <literal>10</literal> - can't update group file
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='groups.1'>
+ <!-- $Id: groups.1.xml,v 1.7 2005/04/27 18:20:35 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>groups</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>groups</refname>
+ <refpurpose>display current group names</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>groups</command>
+ <arg choice='opt'>
+ <replaceable>user</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>groups</command> displays the current group names or ID
+ values. If the value does not have a corresponding entry in
+ <filename>/etc/group</filename>, the value will be displayed as the
+ numerical group value. The optional <emphasis
+ remap='I'>user</emphasis> parameter will display the groups for the
+ named <emphasis remap='I'>user</emphasis>.
+ </para>
+ </refsect1>
+
+ <refsect1 id='note'>
+ <title>NOTE</title>
+ <para>Systems which do not support concurrent group sets will have the
+ information from <filename>/etc/group</filename> reported. The user
+ must use <command>newgrp</coamand> or <command>sg</coamand> to change
+ their current real and effective group ID.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>newgrp</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>getgid</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>getgroups</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>getuid</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh <jockgrrl@ix.netcom.com></para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='grpck.8'>
+ <!-- $Id: grpck.8.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>grpck</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>grpck</refname>
+ <refpurpose>verify integrity of group files</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>grpck</command> <arg choice='opt'>-r </arg>
+ <arg choice='opt'>
+ <arg choice='plain'><replaceable>group</replaceable></arg>
+ <arg choice='plain'><replaceable>shadow</replaceable></arg>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>grpck</command> verifies the integrity of the system
+ authentication information. All entries in the
+ <filename>/etc/group</filename> and <filename>/etc/gshadow</filename>
+ are checked to see that the entry has the proper format and valid data
+ in each field. The user is prompted to delete entries that are
+ improperly formatted or which have other incorrectable errors.
+ </para>
+
+ <para>Checks are made to verify that each entry has:</para>
+
+ <!-- .in +.5i -->
+ <para>- the correct number of fields
+ <!-- .br -->
+ - a unique group name
+ <!-- .br -->
+ - a valid list of members and administrators
+ </para>
+ <!-- .in \-.5i -->
+
+ <para>The checks for correct number of fields and unique group name are
+ fatal. If the entry has the wrong number of fields, the user will be
+ prompted to delete the entire line. If the user does not answer
+ affirmatively, all further checks are bypassed. An entry with a
+ duplicated group name is prompted for deletion, but the remaining
+ checks will still be made. All other errors are warnings and the user
+ is encouraged to run the <command>groupmod</coamand> command to
+ correct the error.
+ </para>
+
+ <para>The commands which operate on the <filename>/etc/group</filename>
+ file are not able to alter corrupted or duplicated entries.
+ <command>grpck</command> should be used in those circumstances to
+ remove the offending entry.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ By default, <command>grpck</command> operates on the files
+ <filename>/etc/group</filename> and <filename>/etc/gshadow</filename>.
+ The user may select alternate files with the <emphasis
+ remap='I'>group</emphasis> and <emphasis remap='I'>shadow</emphasis>
+ parameters. Additionally, the user may execute the command in
+ read-only mode by specifying the <option>-r</option> flag. This causes
+ all questions regarding changes to be answered <emphasis
+ remap='B'>no</emphasis> without user intervention.
+ <command>grpck</command> can also sort entries in
+ <filename>/etc/group</filename> and <filename>/etc/gshadow</filename>
+ by GID. To run it in sort mode pass it <option>-s</option> flag. No
+ checks are performed then, it just sorts.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/gshadow</filename></term>
+ <listitem>secure group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='exit_values'>
+ <title>EXIT VALUES</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <command>grpck</command> command exits with the
+ following values:
+ </term>
+ <listitem>
+ <!-- .br -->
+ <para>
+ <literal>0</literal> - success
+ <!-- .br -->
+ <literal>1</literal> - syntax Error
+ <!-- .br -->
+ <literal>2</literal> - one or more bad group entries
+ <!-- .br -->
+ <literal>3</literal> - can't open group files
+ <!-- .br -->
+ <literal>4</literal> - can't lock group files
+ <!-- .br -->
+ <literal>5</literal> - can't update group files
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='gshadow.5'>
+ <!-- $Id: gshadow.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>gshadow</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>gshadow</refname>
+ <refpurpose>shadowed group file</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <emphasis remap='I'>gshadow</emphasis> contains the shadowed
+ information for group accounts. It contains lines with the folowing
+ colon-separated fields:
+ </para>
+
+ <para>Group name</para>
+
+ <para>Encrypted password</para>
+
+ <para>Comma-separated list of group administrators</para>
+
+ <para>Comma-separated list of group members.</para>
+
+ <para>The group name and password fields must be filled. The encryped
+ password consists of 13 characters from the 64-character alphabet a
+ thru z, A thru Z, 0 thru 9, \. and /. Refer to <citerefentry>
+ <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry> for details on how this string is interpreted. If the
+ password field contains some string that is not valid result of
+ <citerefentry>
+ <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry>, for instance ! or *, the user will not be able to use
+ a unix password to log in, subject to <citerefentry>
+ <refentrytitle>pam</refentrytitle><manvolnum>7</manvolnum>
+ </citerefentry>.
+ </para>
+
+ <para>This information supercedes any password present in
+ <filename>/etc/group</filename>.
+ </para>
+
+ <para>This file must not be readable by regular users if password
+ security is to be maintained.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/gshadow</filename></term>
+ <listitem>secure group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>gpasswd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>newgrp</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Nicolas FRANCOIS</para>
+ </refsect1>
+</refentry>
subdir = man/hu
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='id.1'>
+ <!-- $Id: id.1.xml,v 1.6 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>id</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>id</refname>
+ <refpurpose>Display current user and group ID names</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>id</command> <arg choice='opt'>-a </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>id</command> displays the current real and effective user and
+ group ID names or values. If the value does not have a corresponding
+ entry in <filename>/etc/passwd</filename> or
+ <filename>/etc/group</filename>, the value will be displayed without
+ the corresponding name. The optional <option>-a</option> flag will
+ display the group set on systems which support multiple concurrent
+ group membership.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>getgid</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>getgroups</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>getuid</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh <jockgrrl@ix.netcom.com></para>
+ </refsect1>
+</refentry>
subdir = man/id
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = man/it
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = man/ja
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = man/ko
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='lastlog.8'>
+ <!-- $Id: lastlog.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>lastlog</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>lastlog</refname>
+ <refpurpose>examine lastlog file</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>lastlog</command>
+ <arg choice='opt'>
+ <replaceable>options</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>lastlog</command> formats and prints the contents of the last
+ login log <filename>/var/log/lastlog</filename> file. The <emphasis
+ remap='B'> login-name</emphasis>, <emphasis remap='B'>port</emphasis>,
+ and <emphasis remap='B'>last login time</emphasis> will be printed.
+ The default (no flags) causes lastlog entries to be printed, sorted by
+ their order in <filename>/etc/passwd</filename>.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The options which apply to the <command>lastlog</command>
+ command are:
+ </term>
+ </varlistentry>
+ </variablelist>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-h</option>, <option>--help</option>
+ </term>
+ <listitem>
+ <para>Print help message and exit.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-t</option>, <option>--time</option> <replaceable>
+ DAYS
+ </replaceable>
+ </term>
+ <listitem>
+ <para>
+ Print the lastlog records more recent than <emphasis remap='I'>
+ DAYS
+ </emphasis>
+ .
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-u</option>, <option>--user</option> <replaceable>
+ LOGIN
+ </replaceable>
+ </term>
+ <listitem>
+ <para> Print the lastlog record for user with specified <emphasis
+ remap='I'> LOGIN</emphasis>only.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <option>-t</option> flag overrides the use of <option>-u</option>.
+ </term>
+ <listitem>
+ <para></para> <!-- FIXME: blank list item -->
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para> If the user has never logged in the message <emphasis
+ remap='B'>"**Never logged in**" </emphasis> will be displayed instead
+ of the port and time.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/var/log/lastlog</filename></term>
+ <listitem>lastlog logging file</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>Large gaps in uid numbers will cause the lastlog program to run
+ longer with no output to the screen (i.e. if mmdf=800 and last
+ uid=170, program will appear to hang as it processes uid 171-799).
+ </para>
+ </refsect1>
+
+ <refsect1 id='authors'>
+ <title>AUTHORS</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)
+ <!-- .br -->
+ Phillip Street
+ </para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='limits5'>
+ <!-- $Id: limits.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>LIMITS</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>limits</refname>
+ <refpurpose>Resource limits definition</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ The <emphasis remap='I'>limits</emphasis> file (/etc/limits by
+ default or LIMITS_FILE defined
+ config.h) describes the resource limits you wish to impose. It
+ should be
+ owned by root and readable by root account only.
+ </para>
+
+ <para>By default no quotas are imposed on 'root'. In fact, there is no
+ way to impose
+ limits via this procedure to root-equiv accounts (accounts with UID
+ 0).
+ </para>
+
+ <para>Each line describes a limit for a user in the form:</para>
+
+ <para>
+ <emphasis remap='I'>user LIMITS_STRING</emphasis>
+ </para>
+
+ <para>
+ The <emphasis remap='B'>LIMITS_STRING</emphasis> is a string of a
+ concatenated list of resource limits.
+ Each limit consists of a letter identifier followed by a numerical
+ limit.
+ </para>
+
+ <para>The valid identifiers are:</para>
+
+ <para>A: max address space (KB)
+ <!-- .br -->
+ C: max core file size (KB)
+ <!-- .br -->
+ D: max data size (KB)
+ <!-- .br -->
+ F: maximum filesize (KB)
+ <!-- .br -->
+ M: max locked-in-memory address space (KB)
+ <!-- .br -->
+ N: max number of open files
+ <!-- .br -->
+ R: max resident set size (KB)
+ <!-- .br -->
+ S: max stack size (KB)
+ <!-- .br -->
+ T: max CPU time (MIN)
+ <!-- .br -->
+ U: max number of processes
+ <!-- .br -->
+ K: file creation mask, set by
+ <citerefentry>
+ <refentrytitle>umask</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>
+ .
+ <!-- .br -->
+ L: max number of logins for this user
+ <!-- .br -->
+ P: process priority, set by
+ <citerefentry>
+ <refentrytitle>setpriority</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>
+ .
+ </para>
+
+ <para> For example, <emphasis remap='I'>L2D2048N5</emphasis> is a valid
+ <emphasis remap='B'>LIMITS_STRING </emphasis>. For reading
+ convenience, the following entries are equivalent:
+ </para>
+
+ <para>username L2D2048N5
+ <!-- .br -->
+ username L2 D2048 N5
+ </para>
+
+ <para> Be aware that after <emphasis remap='I'>username</emphasis> the
+ rest of the line is considered a limit string, thus comments are not
+ allowed. A invalid limits string will be rejected (not considered) by
+ the login program.
+ </para>
+
+ <para> The default entry is denoted by username "<emphasis
+ remap='B'>*</emphasis>". If you have multiple <emphasis
+ remap='I'>default</emphasis> entries in your <emphasis
+ remap='B'>LIMITS_FILE</emphasis>, then the last one will be used as
+ the default entry.
+ </para>
+
+ <para>To completely disable limits for a user, a single dash "<emphasis
+ remap='B'>-</emphasis> "will do.
+ </para>
+
+ <para>Also, please note that all limit settings are set PER LOGIN. They
+ are not global, nor are they permanent. Perhaps global limits will
+ come, but for now this will have to do ;)
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/limits</filename></term>
+ <listitem></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>setpriority</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>setrlimit</refentrytitle><manvolnum>2</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Cristian Gafton (gafton@sorosis.ro)</para>
+ </refsect1>
+</refentry>
-.\" $Id: login.1,v 1.23 2005/04/12 16:31:06 kloczek Exp $
+.\" $Id: login.1,v 1.24 2005/04/26 12:38:53 kloczek Exp $
.\" Copyright 1989 - 1994, Julianne Frances Haugh
.\" All rights reserved.
.\"
.SH DESCRIPTION
\fBlogin\fR is used to establish a new session with the system. It is
normally invoked automatically by responding to the \fIlogin:\fR prompt on
-the user\'s terminal. fBlogin\fR may be special to the shell and may not be
+the user\'s terminal. \fBlogin\fR may be special to the shell and may not be
invoked as a sub\-process. Typically, \fBlogin\fR is treated by the shell as
\fBexec login\fR which causes the user to exit from the current shell.
Attempting to execute \fBlogin\fR from any shell but the login shell will
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='login.1'>
+ <!-- $Id: login.1.xml,v 1.6 2005/04/26 12:45:50 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>LOGIN</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>login</refname>
+ <refpurpose>begin session on the system</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>login</command>
+ <arg choice='opt'>-p </arg>
+ <arg choice='opt'>
+ <replaceable>username</replaceable></arg>
+ <arg choice='opt' rep='repeat'> <replaceable>ENV=VAR</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>login</command>
+ <arg choice='opt'>-p </arg>
+ <arg choice='opt'>-h <replaceable>host</replaceable></arg>
+ <arg choice='opt'>-f <replaceable>username</replaceable></arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>login</command>
+ <arg choice='opt'>-p </arg>
+ <arg choice='plain'>-r <replaceable>host</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>login</command> is used to establish a new session with the
+ system. It is normally invoked automatically by responding to the
+ <emphasis remap='I'>login:</emphasis> prompt on the user´s
+ terminal. <command>login</command> may be special to the shell and may
+ not be invoked as a sub-process. Typically, <command>login</command>
+ is treated by the shell as <emphasis remap='B'>exec login</emphasis>
+ which causes the user to exit from the current shell. Attempting to
+ execute <command>login</command> from any shell but the login shell
+ will produce an error message.
+ </para>
+
+ <para>The user is then prompted for a password, where appropriate.
+ Echoing is disabled to prevent revealing the password. Only a small
+ number of password failures are permitted before
+ <command>login</command> exits and the communications link is severed.
+ </para>
+
+ <para>If password aging has been enabled for your account, you may be
+ prompted for a new password before proceeding. You will be forced to
+ provide your old password and the new password before continuing.
+ Please refer to <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry> for more information.
+ </para>
+
+ <para>After a successful login, you will be informed of any system
+ messages and the presence of mail. You may turn off the printing of
+ the system message file, <filename>/etc/motd</filename>, by creating a
+ zero-length file <markup>.hushlogin</markup> in your login directory.
+ The mail message will be one of "<emphasis remap='B'>You have new
+ mail.</emphasis> ", "<emphasis remap='B'>You have mail.</emphasis>",
+ or "<emphasis remap='B'>No Mail.</emphasis> "according to the
+ condition of your mailbox.
+ </para>
+
+ <para>Your user and group ID will be set according to their values in
+ the <filename>/etc/passwd</filename> file. The value for <emphasis
+ remap='B'>$HOME</emphasis>, <emphasis remap='B'>$SHELL</emphasis>,
+ <emphasis remap='B'>$PATH</emphasis>, <emphasis remap='B'>$LOGNAME</emphasis>,
+ and <emphasis remap='B'>$MAIL</emphasis> are set according to the
+ appropriate fields in the password entry. Ulimit, umask and nice
+ values may also be set according to entries in the GECOS field.
+ </para>
+
+ <para>On some installations, the environmental variable <emphasis
+ remap='B'>$TERM</emphasis> will be initialized to the terminal type on
+ your tty line, as specified in <filename>/etc/ttytype</filename>.
+ </para>
+
+ <para>An initialization script for your command interpreter may also be
+ executed. Please see the appropriate manual section for more
+ information on
+ this function.
+ </para>
+
+ <para>A subsystem login is indicated by the presence of a "*" as the
+ first character of the login shell. The given home directory will be
+ used as the root of a new file system which the user is actually
+ logged into.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-f</option>
+ </term>
+ <listitem>
+ <para>Do not perform authentication, user is preauthenticated.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-h</option>
+ </term>
+ <listitem>
+ <para>Name of the remote host for this login.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-p</option>
+ </term>
+ <listitem>
+ <para>Preserve environment.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-r</option>
+ </term>
+ <listitem>
+ <para>Perform autologin protocol for rlogin.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>The <option>-r</option>, <option>-h</option> and
+ <option>-f</option> options are only used when
+ <command>login</command> is invoked by root.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>
+ This version of <command>login</command> has many compilation options,
+ only some of which may be in use at any particular site.
+ </para>
+
+ <para>The location of files is subject to differences in system
+ configuration.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <para>
+ <filename>/var/run/utmp</filename> - list of current login
+ sessions <!-- .br -->
+ <filename>/var/log/wtmp</filename> - list of previous login
+ sessions
+ <!-- .br -->
+ <filename>/etc/passwd</filename> - user account information
+ <!-- .br -->
+ <filename>/etc/shadow</filename> - secure user account information
+ <!-- .br -->
+ <filename>/etc/motd</filename> - system message file
+ <!-- .br -->
+ <filename>/etc/nologin</filename> - prevent non-root users from
+ logging in
+ <!-- .br -->
+ <filename>/etc/ttytype</filename> - list of terminal types
+ <!-- .br -->
+ <emphasis remap='I'>$HOME/.hushlogin</emphasis> - suppress printing
+ of system messages
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>mail</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>nologin</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>getty</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh <jockgrrl@ix.netcom.com></para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='loginaccess5'>
+ <!-- $Id: login.access.5.xml,v 1.4 2005/04/22 07:00:57 kloczek Exp $ -->
+ <!-- this is comment -->
+ <refmeta>
+ <refentrytitle>LOGIN.ACCESS</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>login.access</refname>
+ <refpurpose>Login access control table</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ The <emphasis remap='I'>login.access</emphasis> file specifies
+ (user, host) combinations and/or
+ (user, tty) combinations for which a login will be either accepted
+ or
+ refused.
+ </para>
+
+ <para>
+ When someone logs in, the <emphasis remap='I'>login.access</emphasis> is
+ scanned for the first entry
+ that matches the (user, host) combination, or, in case of
+ non-networked
+ logins, the first entry that matches the (user, tty) combination.
+ The
+ permissions field of that table entry determines whether the login
+ will be
+ accepted or refused.
+ </para>
+
+ <para>Each line of the login access control table has three fields
+ separated by a
+ ":" character:
+ </para>
+
+ <para>
+ <emphasis remap='I'>permission</emphasis>:<emphasis remap='I'>users</emphasis>:<emphasis remap='I'>
+ origins
+ </emphasis>
+ </para>
+
+ <para>
+ The first field should be a "<emphasis remap='B'>+</emphasis>"
+ (access granted) or "<emphasis remap='B'>-</emphasis>" (access
+ denied) character. The second field should be a list of one or more
+ login
+ names, group names, or <emphasis remap='B'>ALL</emphasis> (always
+ matches). The third field should be
+ a list of one or more tty names (for non-networked logins), host
+ names,
+ domain names (begin with "<literal>.</literal>"), host addresses,
+ internet network
+ numbers (end with "<literal>.</literal>"), <emphasis remap='B'>ALL</emphasis> (always matches) or <emphasis remap='B'>
+ LOCAL
+ </emphasis>
+ (matches any string that does not contain a "<literal>.</literal>"
+ character). If you run
+ NIS you can use @netgroupname in host or user patterns.
+ </para>
+
+ <para>
+ The <emphasis remap='B'>EXCEPT</emphasis> operator makes it
+ possible to write very compact rules.
+ </para>
+
+ <para>The group file is searched only when a name does not match that
+ of the
+ logged-in user. Only groups are matched in which users are
+ explicitly
+ listed: the program does not look at a user's primary group id
+ value.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <para>
+ <filename>/etc/loginn.defs</filename> - shadow password suite
+ configuration
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Guido van Rooij</para>
+ </refsect1>
+</refentry>
-.\" $Id: login.defs.5,v 1.15 2005/04/05 18:47:50 kloczek Exp $
+.\" $Id: login.defs.5,v 1.17 2005/04/26 12:16:36 kloczek Exp $
.\" Copyright 1991 - 1993, Julianne Frances Haugh and Chip Rosenthal
.\" All rights reserved.
.\"
authentication before making any changes, unless run by the superuser.
.\"
.IP "CHFN_RESTRICT (string)"
-This parameter specifies which values in the fIgecos\fR field of the
-\fI/etc/passwd\fR file may be changed by regular users using the fBchfn\fR
+This parameter specifies which values in the \fIgecos\fR field of the
+\fI/etc/passwd\fR file may be changed by regular users using the \fBchfn\fR
program. It can be any combination of letters \fIf\fR, \fIr\fR, \fIw\fR,
\fIh\fR, for Full name, Room number, Work phone, and Home phone,
respectively. For backward compatibility, "yes" is equivalent to "rwh" and
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='login.defs.5'>
+ <!-- $Id: login.defs.5.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>login.defs</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>/etc/login.defs</refname>
+ <refpurpose>shadow password suite configuration</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>The <filename>/etc/login.defs</filename> file defines the
+ site-specific configuration for the shadow password suite. This file
+ is required. Absence of this file will not prevent system operation,
+ but will probably result in undesirable operation.
+ </para>
+
+ <para>This file is a readable text file, each line of the file
+ describing one configuration parameter. The lines consist of a
+ configuration name and value, separated by whitespace. Blank lines and
+ comment lines are ignored. Comments are introduced with a `#' pound
+ sign and the pound sign must be the first non-white character of the
+ line.
+ </para>
+
+ <para>Parameter values may be of four types: strings, booleans,
+ numbers, and long numbers. A string is comprised of any printable
+ characters. A boolean should be either the value “yes” or
+ “no”. An undefined boolean parameter or one with a value
+ other than these will be given a “no” value. Numbers (both
+ regular and long) may be either decimal values, octal values (precede
+ the value with “0”) or hexadecimal values (precede the
+ value with “0x”). The maximum value of the regular and
+ long numeric parameters is machine-dependent.
+ </para>
+
+ <para>The following configuration items are provided:</para>
+
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>CHFN_AUTH (boolean)</term>
+ <listitem>
+ <para> If <emphasis remap='I'>yes</emphasis>, the
+ <command>chfn</coamand> and <command>chsh</coamand> programs
+ will require authentication before making any changes, unless
+ run by the superuser.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>CHFN_RESTRICT (string)</term>
+ <listitem>
+ <para>This parameter specifies which values in the <emphasis
+ remap='I'>gecos</emphasis> field of the
+ <filename>/etc/passwd</filename> file may be changed by regular
+ users using the <command>chfn</command> program. It can be any
+ combination of letters <emphasis remap='I'>f</emphasis>
+ ,<emphasis remap='I'>r</emphasis>, <emphasis remap='I'>w</emphasis>,
+ <emphasis remap='I'>h</emphasis>, for Full name, Room number,
+ Work phone, and Home phone, respectively. For backward
+ compatibility, "yes" is equivalent to "rwh" and "no" is
+ equivalent to "frwh". If not specified, only the superuser can
+ make any changes. The most restrictive setting is better
+ achieved by not installing chfn SUID.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>CREATE_HOME (boolean)</term>
+ <listitem>
+ <para>This defines whether useradd should create home directories
+ for users by default. This option is OR'ed with the
+ <option>-m</option> flag on useradd command line.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>GID_MAX (number)</term>
+ <term>GID_MIN (number)</term>
+ <listitem>
+ <para>
+ Range of group IDs to choose from for the
+ <command>useradd</coamand> and
+ <command>groupadd</coamand>programs.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>MAIL_DIR (string)</term>
+ <listitem>
+ <para>The mail spool directory. This is needed to manipulate the
+ mailbox when its corresponding user account is modified or
+ deleted. If not specified, a compile-time default is used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>PASS_MAX_DAYS (number)</term>
+ <listitem>
+ <para>The maximum number of days a password may be used. If the
+ password is older than this, a password change will be forced.
+ If not specified, -1 will be assumed (which disables the
+ restriction).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>PASS_MIN_DAYS (number)</term>
+ <listitem>
+ <para>The minimum number of days allowed between password changes.
+ Any password changes attempted sooner than this will be
+ rejected. If not specified, -1 will be assumed (which disables
+ the restriction).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>PASS_WARN_AGE (number)</term>
+ <listitem>
+ <para>The number of days warning given before a password expires.
+ A zero means warning is given only upon the day of expiration, a
+ negative value means no warning is given. If not specified, no
+ warning will be provided.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>PASS_MAX_DAYS, PASS_MIN_DAYS and PASS_WARN_AGE are only used at
+ the time of account creation. Any changes to these settings won't
+ affect existing accounts.
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>UID_MAX (number)</term>
+ <term>UID_MIN (number)</term>
+ <listitem>
+ <para>
+ Range of user IDs to choose from for the
+ <command>useradd</coamand> program.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>UMASK (number)</term>
+ <listitem>
+ <para>The permission mask is initialized to this value. If not
+ specified, the permission mask will be initialized to 077.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>USERDEL_CMD (string)</term>
+ <listitem>
+ <para>If defined, this command is run when removing a user. It
+ should remove any at/cron/print jobs etc. owned by the user to
+ be removed (passed as the first argument).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='cross_reference'>
+ <title>CROSS REFERENCE</title>
+ <para>The following cross reference shows which programs in the shadow
+ password suite use which parameters.
+ </para>
+ <!-- .na -->
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>chfn</term>
+ <listitem>
+ <para>CHFN_AUTH CHFN_RESTRICT</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>chsh</term>
+ <listitem>
+ <para>CHFN_AUTH</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>groupadd</term>
+ <listitem>
+ <para>GID_MAX GID_MIN</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>newusers</term>
+ <listitem>
+ <para>PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
+ UMASK
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pwconv</term>
+ <listitem>
+ <para>PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>useradd</term>
+ <listitem>
+ <para>CREATE_HOME
+ GID_MAX GID_MIN
+ PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
+ UID_MAX UID_MIN
+ UMASK
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>userdel</term>
+ <listitem>
+ <para>MAIL_DIR
+ USERDEL_CMD
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>usermod</term>
+ <listitem>
+ <para>MAIL_DIR</para>
+ <!-- .ad -->
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='bugs'>
+ <title>BUGS</title>
+ <para>Much of the functionality that used to be provided by the shadow
+ password suite is now handled by PAM. Thus,
+ <filename>/etc/login.defs</filename> is no longer used by programs
+ such as:
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>.
+ Please refer to the corresponding PAM configuration files instead.
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='authors'>
+ <title>AUTHORS</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com) Chip Rosenthal (chip@unicom.com)
+ </para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='logoutd8'>
+ <!-- $Id: logoutd.8.xml,v 1.4 2005/04/22 07:00:57 kloczek Exp $ -->
+ <!-- Copyright 1991, Julianne Frances Haugh -->
+ <!-- All rights reserved. -->
+
+ <!-- Redistribution and use in source and binary forms, with or without -->
+ <!-- modification, are permitted provided that the following conditions -->
+ <!-- are met: -->
+ <!-- 1. Redistributions of source code must retain the above copyright -->
+ <!-- notice, this list of conditions and the following disclaimer. -->
+ <!-- 2. Redistributions in binary form must reproduce the above copyright -->
+ <!-- notice, this list of conditions and the following disclaimer in the -->
+ <!-- documentation and/or other materials provided with the distribution. -->
+ <!-- 3. Neither the name of Julianne F. Haugh nor the names of its contributors -->
+ <!-- may be used to endorse or promote products derived from this software -->
+ <!-- without specific prior written permission. -->
+
+ <!-- THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND -->
+ <!-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -->
+ <!-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -->
+ <!-- ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE -->
+ <!-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -->
+ <!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -->
+ <!-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -->
+ <!-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -->
+ <!-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -->
+ <!-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -->
+ <!-- SUCH DAMAGE. -->
+ <refmeta>
+ <refentrytitle>LOGOUTD</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>logoutd</refname>
+ <refpurpose>Enforce login time restrictions</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>logoutd</command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>logoutd</command> enforces the login time and port
+ restrictions specified in
+ <filename>/etc/porttime</filename>. <command>logoutd</command>
+ should be started from <filename>/etc/rc</filename>.
+ The <filename>/var/run/utmp</filename> file is scanned periodically
+ and each user name
+ is checked to see if the named user is permitted on the named port
+ at the current time.
+ Any login session which is violating the restrictions in <filename>
+ /etc/porttime
+ </filename>
+ is terminated.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <para>
+ <filename>/etc/porttime</filename> - login and port permissions
+ <!-- .br -->
+ <filename>/var/run/utmp</filename> - current login sessions
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='mkpasswd8'>
+ <!-- $Id: mkpasswd.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>mkpasswd</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>mkpasswd</refname>
+ <refpurpose>Update passwd and group database files</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>mkpasswd</command>
+ <arg choice='opt'>-fvgps </arg>
+ <arg choice='plain'><replaceable>file</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>mkpasswd</command> reads the file in the format given by the
+ flags and converts it to the corresponding database file format. These
+ database files are used to improve access performance on systems with
+ large numbers of users. The output files will be named <emphasis
+ remap='I'>file</emphasis>.dir and <emphasis
+ remap='I'>file</emphasis>.pag.
+ </para>
+
+ <para>The <option>-f</option> option causes <command>mkpasswd</command>
+ to ignore any existing output files and overwrite them. Normally
+ <command>mkpasswd</command> complains about existing output files and
+ quits.
+ </para>
+
+ <para>The <option>-v</option> option causes <command>mkpasswd</command>
+ to output information about each record as it is converted, with a
+ final message at the very end.
+ </para>
+
+ <para>The <option>-g</option> option treats the input file as though it
+ were in <filename>/etc/group</filename> file format. When combined
+ with the <option>-s</option> option, the
+ <filename>/etc/gshadow</filename> file format is used instead.
+ </para>
+
+ <para>The <option>-p</option> option treats the input file as though it
+ were in <filename>/etc/passwd</filename> file format. This is the
+ default. When combined with the <option>-s</option> option, the
+ <filename>/etc/shadow</filename> file format is used instead.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>The use of more than one database file is limited to systems which
+ include the NDBM database library and therefore may not be available
+ on every system.
+ </para>
+ </refsect1>
+
+ <refsect1 id='note'>
+ <title>NOTE</title>
+ <para>Since most commands are capable of updating the database files as
+ changes are made, this command need only be used when re-creating a
+ deleted or corrupted database file.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/gshadow</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='newusers8'>
+ <!-- $Id: newusers.8.xml,v 1.4 2005/04/22 07:00:57 kloczek Exp $ -->
+ <!-- Copyright 1991 \- 1994, Julianne Frances Haugh -->
+ <!-- All rights reserved. -->
+
+ <!-- Redistribution and use in source and binary forms, with or without -->
+ <!-- modification, are permitted provided that the following conditions -->
+ <!-- are met: -->
+ <!-- 1. Redistributions of source code must retain the above copyright -->
+ <!-- notice, this list of conditions and the following disclaimer. -->
+ <!-- 2. Redistributions in binary form must reproduce the above copyright -->
+ <!-- notice, this list of conditions and the following disclaimer in the -->
+ <!-- documentation and/or other materials provided with the distribution. -->
+ <!-- 3. Neither the name of Julianne F. Haugh nor the names of its contributors -->
+ <!-- may be used to endorse or promote products derived from this software -->
+ <!-- without specific prior written permission. -->
+
+ <!-- THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND -->
+ <!-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -->
+ <!-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -->
+ <!-- ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE -->
+ <!-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -->
+ <!-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -->
+ <!-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -->
+ <!-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -->
+ <!-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -->
+ <!-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -->
+ <!-- SUCH DAMAGE. -->
+ <refmeta>
+ <refentrytitle>NEWUSERS</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>newusers</refname>
+ <refpurpose>update and create new users in batch</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>newusers</command>
+ <arg choice='opt'>
+ <replaceable>new_users</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>newusers</command> reads a file of user name and
+ clear-text password pairs and
+ uses this information to update a group of existing users or to
+ create new
+ users. Each line is in the same format as the standard password
+ file (see
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ )with the following exceptions.
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <emphasis remap='I'>pw_passwd</emphasis>
+ </term>
+ <listitem>
+ <para>This field will be encrypted and used as the new
+ value of the encrypted
+ password.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='I'>pw_age</emphasis>
+ </term>
+ <listitem>
+ <para>This field will be ignored for shadow passwords if
+ the user already exists.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='I'>pw_gid</emphasis>
+ </term>
+ <listitem>
+ <para>This field may be the name of an existing group, in
+ which case the named
+ user will be added as a member. If a non-existent
+ numerical group is given,
+ a new group will be created having this number.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='I'>pw_dir</emphasis>
+ </term>
+ <listitem>
+ <para>This field will be checked for existence as a
+ directory and a new directory
+ with the same name will be created if it does not
+ already exist. The
+ ownership of the directory will be set to be that of
+ the user being created
+ or updated.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>This command is intended to be used in a large system environment
+ where many
+ accounts are updated at a single time.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>The input file must be protected since it contains unencrypted
+ passwords.
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>
+ ,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
-.\" $Id: passwd.1,v 1.24 2005/04/15 19:17:20 kloczek Exp $
+.\" $Id: passwd.1,v 1.25 2005/05/09 10:14:40 kloczek Exp $
.\" Copyright 1989 - 1994, Julianne Frances Haugh
.\" All rights reserved.
.\"
date and interval.
.PP
The \fB\-s\fR option makes \fBpasswd\fR call \fBchsh\fR to change the user's
-shell. The \fB\-f\fR option makes passwd call chfn to change the user's
+shell. The \fB\-f\fR option makes \fBpasswd\fR call \fBchfn\fR to change the user's
gecos information. These two options are only meant for compatiblity, since
the other programs can be called directly.
.SS Password Changes
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='passwd.1'>
+ <!-- $Id: passwd.1.xml,v 1.8 2005/05/09 10:14:39 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>passwd</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>passwd</refname>
+ <refpurpose>change user password</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>passwd</command>
+ <group choice='opt'>
+ <arg choice='plain'>-f </arg><arg choice='plain'>-s </arg>
+ </group>
+ <arg choice='opt'>
+ <replaceable>name</replaceable>
+ </arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>passwd</command>
+ <arg choice='opt'>-g </arg>
+ <group choice='opt'>
+ <arg choice='plain'>-r </arg>
+ <arg choice='plain'>-R </arg>
+ </group>
+ <arg choice='plain'>
+ <replaceable>group</replaceable>
+ </arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>passwd</command>
+ <arg choice='opt'>-x <replaceable>max</replaceable></arg>
+ <arg choice='opt'>-n <replaceable>min</replaceable></arg>
+ <arg choice='opt'>-w <replaceable>warn</replaceable></arg>
+ <arg choice='opt'>-i <replaceable>inact</replaceable></arg>
+ <arg choice='plain'><replaceable>login</replaceable>
+ </arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>passwd</command>
+ <group choice='opt'>
+ <arg choice='plain'>-l </arg>
+ <arg choice='plain'>-u </arg>
+ <arg choice='plain'>-d </arg>
+ <arg choice='plain'>-S </arg>
+ <arg choice='plain'>-e </arg>
+ </group>
+ <arg choice='plain'><replaceable>login</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>passwd</command> changes passwords for user and group
+ accounts. A normal user may only change the password for his/her own
+ account, the super user may change the password for any account. The
+ administrator of a group may change the password for the group.
+ <command>passwd</command> also changes account information, such as
+ the full name of the user, user's login shell, or password expiry date
+ and interval.
+ </para>
+
+ <para>The <option>-s</option> option makes <command>passwd</command>
+ call <command>chsh</coamand> to change the user's shell. The
+ <option>-f</option> option makes <command>passwd</command> call
+ <command>chfn</command> to change the user's gecos information. These
+ two options are only meant for compatiblity, since the other programs
+ can be called directly.
+ </para>
+
+ <refsect2 id='password_changes'>
+ <title>Password Changes</title>
+ <para>The user is first prompted for his/her old password, if one is
+ present. This password is then encrypted and compared against the
+ stored password. The user has only one chance to enter the correct
+ password. The super user is permitted to bypass this step so that
+ forgotten passwords may be changed.
+ </para>
+
+ <para>After the password has been entered, password aging information
+ is checked to see if the user is permitted to change the password at
+ this time. If not, <command>passwd</command> refuses to change the
+ password and exits.
+ </para>
+
+ <para>The user is then prompted for a replacement password. This
+ password is tested for complexity. As a general guideline, passwords
+ should consist of 6 to 8 characters including one or more from each
+ of following sets:
+ </para>
+
+ <para>Lower case alphabetics</para>
+
+ <para>Upper case alphabetics</para>
+
+ <para>Digits 0 thru 9</para>
+
+ <para>Punctuation marks</para>
+
+ <para>Care must be taken not to include the system default erase or
+ kill characters. <command>passwd</command> will reject any password
+ which is not suitably complex.
+ </para>
+
+ <para>If the password is accepted, <command>passwd</command> will
+ prompt again and compare the second entry against the first. Both
+ entries are required to match in order for the password to be
+ changed.
+ </para>
+ </refsect2>
+
+ <refsect2 id='group_passwords'>
+ <title>Group passwords</title>
+ <para>
+ When the <option>-g</option> option is used, the password for the
+ named group is changed. The user must either be the super user, or a
+ group administrator for the named group. The current group password
+ is not prompted for. The <option>-r</option> option is used with the
+ <option>-g</option> option to remove the current password from the
+ named group. This allows group access to all members. The
+ <option>-R</option> option is used with the <option>-g</option>
+ option to restrict the named group for all users.
+ </para>
+ </refsect2>
+
+ <refsect2 id='password_expiry_information'>
+ <title>Password expiry information</title>
+ <para>The password aging information may be changed by the super user
+ with the <option>-x</option>, <option>-n</option>,
+ <option>-w</option>, and <option>-i</option> options. The
+ <option>-x</option> option is used to set the maximum number of days
+ a password remains valid. After <emphasis remap='I'>max</emphasis>
+ days, the password is required to be changed. The
+ <option>-n</option> option is used to set the minimum number of days
+ before a password may be changed. The user will not be permitted to
+ change the password until <emphasis remap='I'>min</emphasis> days
+ have elapsed. The <option>-w</option> option is used to set the
+ number of days of warning the user will receive before his/her
+ password will expire. The warning occurs <emphasis
+ remap='I'>warn</emphasis> days before the expiration, telling the
+ user how many days remain until the password is set to expire. The
+ <option>-i</option> option is used to disable an account after the
+ password has been expired for a number of days. After a user account
+ has had an expired password for <emphasis remap='I'>inact</emphasis>
+ days, the user may no longer sign on to the account.
+ </para>
+
+ <para>If you wish to immediately expire an account's password, you can
+ use the <option>-e</option> option. This in effect can force a user
+ to change his/her password at the user's next login. You can also
+ use the <option>-d</option> option to delete a user's password (make
+ it empty). Use caution with this option since it can make an account
+ not require a password at all to login, leaving your system open to
+ intruders.
+ </para>
+ </refsect2>
+
+ <refsect2 id='account_maintenance'>
+ <title>Account maintenance</title>
+ <para> User accounts may be locked and unlocked with the
+ <option>-l</option> and <option>-u</option> flags. The
+ <option>-l</option> option disables an account by changing the
+ password to a value which matches no possible encrypted value. The
+ <option>-u</option> option re-enables an account by changing the
+ password back to its previous value.
+ </para>
+
+ <para>The account status may be viewed with the <option>-S</option>
+ option. The status information consists of 7 fields. The first
+ field is the user's login name. The second field indicates if the
+ user account is locked (L), has no password (NP), or has a usable
+ password (P). The third field gives the date of the last password
+ change. The next four fields are the minimum age, maximum age,
+ warning period, and inactivity period for the password. These ages
+ are expressed in days. See <emphasis remap='B'>Password expiry
+ information</emphasis> above for a discussion of these fields.
+ </para>
+ </refsect2>
+
+ <refsect2 id='hints_for_user_passwords'>
+ <title>Hints for user passwords</title>
+ <para>The security of a password depends upon the strength of the
+ encryption algorithm and the size of the key space. The <emphasis
+ remap='B'>\s-2UNIX</emphasis> System encryption method is based on
+ the NBS DES algorithm and is very secure. The size of the key space
+ depends upon the randomness of the password which is selected.
+ </para>
+
+ <para>Compromises in password security normally result from careless
+ password selection or handling. For this reason, you should not
+ select a password which appears in a dictionary or which must be
+ written down. The password should also not be a proper name, your
+ license number, birth date, or street address. Any of these may be
+ used as guesses to violate system security.
+ </para>
+
+ <para>Your password must easily remembered so that you will not be
+ forced to write it on a piece of paper. This can be accomplished by
+ appending two small words together and separating each with a
+ special character or digit. For example, Pass%word.
+ </para>
+
+ <para>Other methods of construction involve selecting an easily
+ remembered phrase from literature and selecting the first or last
+ letter from each word. An example of this is
+ </para>
+
+ <para>Ask not for whom the bell tolls.</para>
+
+ <para>which produces</para>
+
+ <para>An4wtbt.</para>
+
+ <para>You may be reasonably sure few crackers will have included this
+ in their dictionaries. You should, however, select your own methods
+ for constructing passwords and not rely exclusively on the methods
+ given here.
+ </para>
+ </refsect2>
+
+ <refsect2 id='notes_about_group_passwords'>
+ <title>Notes about group passwords</title>
+ <para>Group passwords are an inherent security problem since more than
+ one person is permitted to know the password. However, groups are a
+ useful tool for permitting co-operation between different users.
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>Not all options may be supported. Password complexity checking
+ may vary from site to site. The user is urged to select a password as
+ complex as he feels comfortable with. Users may not be able to change
+ their password on a system if NIS is enabled and they are not logged
+ into the NIS server.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='exit_values'>
+ <title>EXIT VALUES</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <command>passwd</command> command exits with the
+ following values:
+ </term>
+ <listitem>
+ <para>
+ <literal>0</literal> - success
+ <!-- .br -->
+ <literal>1</literal> - permission denied
+ <!-- .br -->
+ <literal>2</literal> - invalid combination of options
+ <!-- .br -->
+ <literal>3</literal> - unexpected failure, nothing done
+ <!-- .br -->
+ <literal>4</literal> - unexpected failure, passwd file
+ missing
+ <!-- .br -->
+ <literal>5</literal> - passwd file busy, try again
+ later <!-- .br -->
+ <literal>6</literal> - invalid argument to option
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh <jockgrrl@ix.netcom.com></para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='passwd.5'>
+ <!-- $Id: passwd.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>passwd</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>passwd</refname>
+ <refpurpose>The password file</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <filename>/etc/passwd</filename> contains various pieces of
+ information for each user account. Included is:
+ </para>
+
+ <para>Login name</para>
+
+ <para>Optional encrypted password</para>
+
+ <para>Numerical user ID</para>
+
+ <para>Numerical group ID</para>
+
+ <para>User name or comment field</para>
+
+ <para>User home directory</para>
+
+ <para>User command interpreter</para>
+
+ <para>The password field may not be filled if shadow passwords have been
+ enabled. If shadow passwords are being used, the encrypted password
+ will be found in <filename>/etc/shadow</filename>. The encrypted
+ password consists of characters from the 64 characters alphabet a thru
+ z, A thru Z, 0 thru 9, \. and /. Optionally it can start with a "$"
+ character. This means the encrypted password was generated using
+ another (not DES) algorithm. For example if it starts with "$1$" it
+ means the MD5-based algorithm was used.
+ </para>
+
+ <para> Refer to <citerefentry>
+ <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry> for details on how this string is interpreted.
+ </para>
+
+ <para>The comment field is used by various system utilities, such as
+ <citerefentry>
+ <refentrytitle>finger</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>. Three additional values may be present in the comment
+ field. They are:
+ </para>
+
+ <para>pri= - set initial value of nice</para>
+
+ <para>umask= - set initial value of umask</para>
+
+ <para>ulimit= - set initial value of ulimit</para>
+
+ <para>These fields are separated from each other and from any other
+ comment field by a comma.
+ </para>
+
+ <para>The home directory field provides the name of the initial working
+ directory. <emphasis remap='B'>Login</emphasis> uses this information
+ to set the value of the <envar>$HOME</envar> environmental variable.
+ </para>
+
+ <para>The command interpreter field provides the name of the user's
+ command language interpreter, or the name of the initial program to
+ execute. <emphasis remap='B'>Login</emphasis> uses this information
+ to set the value of the <envar>$SHELL</envar> environmental variable.
+ If this field is empty, it defaults to the value
+ <filename>/bin/sh</filename>.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>pwconv</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>pwunconv</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>sulogin</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
subdir = man/pl
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='porttime.5'>
+ <!-- $Id: porttime.5.xml,v 1.6 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>porttime</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>porttime</refname>
+ <refpurpose>port access time file</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <emphasis remap='I'>porttime</emphasis> contains a list of tty
+ devices, user names, and permitted login times.
+ </para>
+
+ <para>Each entry consists of three colon separated fields. The first
+ field is a comma separated list of tty devices, or an asterisk to
+ indicate that all tty devices are matched by this entry. The second
+ field is a comma separated list of user names, or an asterisk to
+ indicated that all user names are matched by this entry. The third
+ field is a comma separated list of permitted access times.
+ </para>
+
+ <para>Each access time entry consists of zero or more days of the week,
+ abbreviated <emphasis remap='B'>Su</emphasis>, <emphasis
+ remap='B'>Mo</emphasis>,<emphasis remap='B'>Tu</emphasis>, <emphasis
+ remap='B'>We</emphasis>, <emphasis remap='B'>Th</emphasis>, <emphasis
+ remap='B'>Fr</emphasis>, and <emphasis remap='B'>Sa</emphasis>,
+ followed by a pair of times separated by a hyphen. The abbreviation
+ <emphasis remap='B'>Wk</emphasis> may be used to represent Monday thru
+ Friday, and <emphasis remap='B'>Al</emphasis> may be used to indicate
+ every day. If no days are given, <emphasis remap='B'>Al</emphasis> is
+ assumed.
+ </para>
+ </refsect1>
+
+ <refsect1 id='examples'>
+ <title>EXAMPLES</title>
+ <para>
+ The following entry allows access to user <emphasis
+ remap='B'>jfh</emphasis> on every port during weekdays from 9am to
+ 5pm.
+ </para>
+ <!-- .br -->
+
+ <para> *:jfh:Wk0900-1700</para>
+ <!-- .br -->
+
+ <para>The following entries allow access only to the users <emphasis
+ remap='B'>root</emphasis> and <emphasis remap='B'>oper</emphasis> on
+ /dev/console at any time. This illustrates how the
+ <filename>/etc/porttime</filename> file is an ordered list of access
+ times. Any other user would match the second entry which does not
+ permit access at any time.
+ </para>
+ <!-- .br -->
+
+ <para> console:root,oper:Al0000-2400
+ <!-- .br -->
+ console:*:
+ </para>
+ <!-- .br -->
+
+ <para>The following entry allows access for the user <emphasis
+ remap='B'>games</emphasis> on any port during non-working hours.
+ </para>
+ <!-- .br -->
+
+ <para> *:games:Wk1700-0900,SaSu0000-2400</para>
+ <!-- .br -->
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/porttime</filename></term>
+ <listitem>file containing port access</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
subdir = man/pt_BR
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='pw_auth.3'>
+ <!-- $Id: pw_auth.3.xml,v 1.5 2005/04/27 15:43:25 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>pw_auth</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>pwauth</refname>
+ <refpurpose>administrator defined password authentication routines</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='syntax'>
+ <title>SYNTAX</title>
+ <para>
+ <emphasis remap='B'>#include <pwauth.h></emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>int pw_auth (char</emphasis>
+ <emphasis remap='I'>*command,</emphasis>
+ <emphasis remap='B'>char</emphasis>
+ <emphasis remap='I'>*user,</emphasis>
+ <emphasis remap='B'>int</emphasis>
+ <emphasis remap='I'>reason,</emphasis>
+ <emphasis remap='B'>char</emphasis>
+ <emphasis remap='I'>*input)</emphasis><emphasis remap='B'>;</emphasis>
+ </para>
+ </refsect1>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <emphasis remap='B'>pw_auth</emphasis>
+ invokes the administrator defined functions for a given user.
+ </para>
+
+ <para><emphasis remap='I'>command</emphasis> is the name of the
+ authentication program. It is retrieved from the user's password file
+ information. The string contains one or more executable file names,
+ delimited by semi-colons. Each program will be executed in the order
+ given. The command line arguments are given for each of the reasons
+ listed below.
+ </para>
+
+ <para> <emphasis remap='I'>user</emphasis> is the name of the user to be
+ authenticated, as given in the <filename>/etc/passwd</filename> file.
+ User entries are indexed by username. This allows non-unique user IDs
+ to be present and for each different username associated with that
+ user ID to have a different authentication program and information.
+ </para>
+
+ <para>Each of the permissible authentication reasons is handled in a
+ potentially differenent manner. Unless otherwise mentioned, the
+ standard file descriptors 0, 1, and 2 are available for communicating
+ with the user. The real user ID may be used to determine the identity
+ of the user making the authentication request. <emphasis
+ remap='I'>reason</emphasis> is one of
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_SU</emphasis>
+ </term>
+ <listitem>
+ <para>Perform authentication for the current real user ID
+ attempting to switch real user ID to the named user. The
+ authentication program will be invoked with a
+ <option>-s</option> option, followed by the username.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_LOGIN</emphasis>
+ </term>
+ <listitem>
+ <para>Perform authentication for the named user creating a new
+ login session. The authentication program will be invoked with a
+ <option>-l</option> option, followed by the username.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_ADD</emphasis>
+ </term>
+ <listitem>
+ <para>Create a new entry for the named user. This allows an
+ authentication program to initialize storage for a new user. The
+ authentication program will be invoked with a
+ <option>-a</option> option, followed by the username.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_CHANGE</emphasis>
+ </term>
+ <listitem>
+ <para>Alter an existing entry for the named user. This allows an
+ authentication program to alter the authentication information
+ for an existing user. The authentication program will be invoked
+ with a <option>-c</option> option, followed by the username.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_DELETE</emphasis>
+ </term>
+ <listitem>
+ <para>Delete authentication information for the named user. This
+ allows an authentication program to reclaim storage for a user
+ which is no longer authenticated using the authentication
+ program. The authentication program will be invoked with a
+ <option>-d</option> option, followed by the username.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_TELNET</emphasis>
+ </term>
+ <listitem>
+ <para>Authenticate a user who is connecting to the system using
+ the <emphasis remap='B'>telnet</emphasis> command. The
+ authentication program will be invoked with a
+ <option>-t</option> option, followed by the username.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_RLOGIN</emphasis>
+ </term>
+ <listitem>
+ <para>
+ Authenticate a user who is connecting to the system using the
+ <emphasis remap='B'>rlogin</emphasis> command. The
+ authentication program will be invoked with a
+ <option>-r</option> option, followed by the username.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_FTP</emphasis>
+ </term>
+ <listitem>
+ <para>
+ Authenticate a user who is connecting to the system using the
+ <emphasis remap='B'>ftp</emphasis> command. The authentication
+ program will be invoked with a <option>-f</option> option,
+ followed by the username. The standard file descriptors are not
+ available for communicating with the user. The standard input
+ file descriptor will be connected to the parent process, while
+ the other two output file descriptors will be connected to
+ <filename>/dev/null</filename>. The <emphasis
+ remap='B'>pw_auth</emphasis> function will pipe a single line of
+ data to the authentication program using file descriptor 0.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>PW_REXEC</emphasis>
+ </term>
+ <listitem>
+ <para>
+ Authenticate a user who is connecting to the system using the
+ <emphasis remap='I'>rexec</emphasis> command. The authentication
+ program will be invoked with a <option>-x</option> option,
+ followed by the username. The standard file descriptors are not
+ available for communicating with the remote user. The standard
+ input file descriptor will be connected to the parent process,
+ while the other two output file descriptors will be connected to
+ <filename>/dev/null</filename>. The <emphasis
+ remap='B'>pw_auth</emphasis> function will pipe a single line of
+ data to the authentication program using file descriptor 0.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>The last argument is the authentication data which is used by the
+ <emphasis remap='B'>PW_FTP</emphasis> and <emphasis
+ remap='B'>PW_REXEC</emphasis> reasons. It is treated as a single line
+ of text which is piped to the authentication program. When the reason
+ is <emphasis remap='B'>PW_CHANGE,</emphasis> the value of <emphasis
+ remap='I'>input</emphasis> is the value of previous user name if the
+ user name is being changed.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>This function does not create the actual session. It only
+ indicates if the user should be allowed to create the session.
+ </para>
+
+ <para>The network options are untested at this time.</para>
+ </refsect1>
+
+ <refsect1 id='diagnostics'>
+ <title>DIAGNOSTICS</title>
+ <para>
+ The <emphasis remap='B'>pw_auth</emphasis> function returns 0 if the
+ authentication program exited with a 0 exit code, and a non-zero value
+ otherwise.
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='pwck.8'>
+ <!-- $Id: pwck.8.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>pwck</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>pwck</refname>
+ <refpurpose>verify integrity of password files</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>pwck</command> <arg choice='opt'>-sr </arg>
+ <arg choice='opt'>
+ <arg choice='plain'>
+ <replaceable>passwd</replaceable>
+ </arg>
+ <arg choice='plain'>
+ <replaceable>shadow</replaceable>
+ </arg>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>pwck</command> verifies the integrity of the system
+ authentication information. All entries in the
+ <filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>
+ are checked to see that the entry has the proper format and valid data
+ in each field. The user is prompted to delete entries that are
+ improperly formatted or which have other uncorrectable errors.
+ </para>
+
+ <para>Checks are made to verify that each entry has</para>
+
+ <!-- .in +.5i -->
+ <para>- the correct number of fields
+ <!-- .br -->
+ - a unique user name
+ <!-- .br -->
+ - a valid user and group identifier
+ <!-- .br -->
+ - a valid primary group
+ <!-- .br -->
+ - a valid home directory
+ <!-- .br -->
+ - a valid login shell
+ </para>
+ <!-- .in \-.5i -->
+
+ <para>The checks for correct number of fields and unique user name are
+ fatal. If the entry has the wrong number of fields, the user will be
+ prompted to delete the entire line. If the user does not answer
+ affirmatively, all further checks are bypassed. An entry with a
+ duplicated user name is prompted for deletion, but the remaining
+ checks will still be made. All other errors are warning and the user
+ is encouraged to run the <command>usermod</coamand> command to correct
+ the error.
+ </para>
+
+ <para> The commands which operate on the
+ <filename>/etc/passwd</filename> file are not able to alter corrupted
+ or duplicated entries. <command>pwck</command> should be used in
+ those circumstances to remove the offending entry.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ By default, <command>pwck</command> operates on the files
+ <filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>.
+ The user may select alternate files with the <emphasis
+ remap='I'>passwd</emphasis> and <emphasis remap='I'>shadow</emphasis>
+ parameters. Additionally, the user may execute the command in
+ read-only mode by specifying the <option>-r</option> flag. This causes
+ all questions regarding changes to be answered <emphasis
+ remap='B'>no</emphasis> without user intervention.
+ <command>pwck</command> can also sort entries in
+ <filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>
+ by UID. To run it in sort mode pass it <option>-s</option> flag. No
+ checks are performed then, it just sorts.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='exit_values'>
+ <title>EXIT VALUES</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <command>pwck</command> command exits with the
+ following values:
+ </term>
+ <listitem>
+ <para>
+ <literal>0</literal> - success
+ <!-- .br -->
+ <literal>1</literal> - invalid command syntax
+ <!-- .br -->
+ <literal>2</literal> - one or more bad password entries
+ <!-- .br -->
+ <literal>3</literal> - can't open password files
+ <!-- .br -->
+ <literal>4</literal> - can't lock password files
+ <!-- .br -->
+ <literal>5</literal> - can't update password files
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
-.\"$Id: pwconv.8,v 1.15 2005/04/02 08:01:24 kloczek Exp $
+.\"$Id: pwconv.8,v 1.17 2005/05/19 10:34:59 kloczek Exp $
.TH PWCONV 8 "26 Sep 1997"
.SH NAME
pwconv, pwunconv, grpconv, grpunconv \- convert to and from shadow passwords and groups.
and \fIPASS_WARN_AGE\fR from \fI/etc/login.defs\fR when adding new entries
to \fI/etc/shadow\fR.
.PP
-Likewise \fBpwunconv\fR and \fBgrpunconv\fR are similiar. Passwords in the
+Likewise \fBpwunconv\fR and \fBgrpunconv\fR are similar. Passwords in the
main file are updated from the shadowed file. Entries which exist in the
main file but not in the shadowed file are left alone. Finally, the shadowed
-file is removed. Some password aging information is lost by fBpwunconv\fR.
+file is removed. Some password aging information is lost by \fBpwunconv\fR.
It will convert what it can.
.SH "BUGS"
Errors in the password or group files (such as invalid or duplicate entries)
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='pwconv.8'>
+ <!-- $Id: pwconv.8.xml,v 1.6 2005/05/19 10:35:00 kloczek Exp $ -->
+ <refentryinfo>
+ <date>26 Sep 1997</date>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>PWCONV</refentrytitle>
+ <manvolnum>8</manvolnum>
+ <refmiscinfo class='date'>26 Sep 1997</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>pwconv</refname>
+ <refname>pwunconv</refname>
+ <refname>grpconv</refname>
+ <refname>grpunconv</refname>
+ <refpurpose>convert to and from shadow passwords and groups.</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>pwconv</command>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>pwunconv</command>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>grpconv</command>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>grpunconv</command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para><command>pwconv</command> creates <emphasis
+ remap='I'>shadow</emphasis> from <emphasis remap='I'>passwd</emphasis>
+ and an optionally existing <emphasis remap='I'>shadow</emphasis>.
+ </para>
+
+ <para><command>pwunconv</command> creates <emphasis
+ remap='I'>passwd</emphasis> from <emphasis remap='I'>passwd</emphasis>
+ and <emphasis remap='I'>shadow</emphasis> and then removes <emphasis
+ remap='I'>shadow</emphasis>.
+ </para>
+
+ <para><command>grpconv</command> creates <emphasis
+ remap='I'>gshadow</emphasis> from <emphasis remap='I'>group</emphasis>
+ and an optionally existing <emphasis remap='I'>gshadow</emphasis>.
+ </para>
+
+ <para><command>grpunconv</command> creates <emphasis
+ remap='I'>group</emphasis> from <emphasis remap='I'>group</emphasis>
+ and <emphasis remap='I'>gshadow</emphasis> and then removes <emphasis
+ remap='I'>gshadow</emphasis>.
+ </para>
+
+ <para>These four programs all operate on the normal and shadow password
+ and group files: <filename>/etc/passwd</filename>,
+ <filename>/etc/group</filename>, <filename>/etc/shadow</filename>, and
+ <filename>/etc/gshadow</filename>.
+ </para>
+
+ <para> Each program acquires the necessary locks before conversion.
+ <command>pwconv</command> and <command>grpconv</command> are similar.
+ First, entries in the shadowed file which don't exist in the main file
+ are removed. Then, shadowed entries which don't have `x' as the
+ password in the main file are updated. Any missing shadowed entries
+ are added. Finally, passwords in the main file are replaced with `x'.
+ These programs can be used for initial conversion as well to update
+ the shadowed file if the main file is edited by hand.
+ </para>
+
+ <para><command>pwconv</command> will use the values of <emphasis
+ remap='I'>PASS_MIN_DAYS</emphasis>, <emphasis
+ remap='I'>PASS_MAX_DAYS</emphasis>, and <emphasis
+ remap='I'>PASS_WARN_AGE</emphasis> from
+ <filename>/etc/login.defs</filename> when adding new entries to
+ <filename>/etc/shadow</filename>.
+ </para>
+
+ <para>Likewise <command>pwunconv</command> and
+ <command>grpunconv</command> are similar. Passwords in the main file
+ are updated from the shadowed file. Entries which exist in the main
+ file but not in the shadowed file are left alone. Finally, the
+ shadowed file is removed. Some password aging information is lost by
+ <command>pwunconv</command>. It will convert what it can.
+ </para>
+ </refsect1>
+
+ <refsect1 id='bugs'>
+ <title>BUGS</title>
+ <para>Errors in the password or group files (such as invalid or
+ duplicate entries) may cause these programs to loop forever or fail in
+ other strange ways. Please run <command>pwck</command> and
+ <command>grpck</command> to correct any such errors before converting
+ to or from shadow passwords or groups.
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>grpck</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>pwck</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry></para>
+ </refsect1>
+</refentry>
subdir = man/ru
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='shadow.3'>
+ <!-- $Id: shadow.3.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>shadow</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>shadow</refname>
+ <refpurpose>encrypted password file routines</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='syntax'>
+ <title>SYNTAX</title>
+ <para>
+ <emphasis remap='B'>#include <shadow.h></emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>struct spwd *getspent();</emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>struct spwd *getspnam(char</emphasis>
+ <emphasis remap='I'>*name</emphasis><emphasis remap='B'>);</emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>void setspent();</emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>void endspent();</emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>struct spwd *fgetspent(FILE</emphasis>
+ <emphasis remap='I'>*fp</emphasis><emphasis remap='B'>);</emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>struct spwd *sgetspent(char</emphasis>
+ <emphasis remap='I'>*cp</emphasis><emphasis remap='B'>);</emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>int putspent(struct spwd</emphasis>
+ <emphasis remap='I'>*p,</emphasis>
+ <emphasis remap='B'>FILE</emphasis>
+ <emphasis remap='I'>*fp</emphasis><emphasis remap='B'>);</emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>int lckpwdf();</emphasis>
+ </para>
+
+ <para>
+ <emphasis remap='B'>int ulckpwdf();</emphasis>
+ </para>
+ </refsect1>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <emphasis remap='I'>shadow</emphasis>
+ manipulates the contents of the shadow password file,
+ <filename>/etc/shadow</filename>.
+ The structure in the <emphasis remap='I'>#include</emphasis> file
+ is
+ </para>
+
+ <para>struct spwd {
+ <!-- .in +.5i -->
+ <!-- .br -->
+ char *sp_namp; /* user login name */
+ <!-- .br -->
+ char *sp_pwdp; /* encrypted password */
+ <!-- .br -->
+ long int sp_lstchg; /* last password change */
+ <!-- .br -->
+ long int sp_min; /* days until change allowed. */
+ <!-- .br -->
+ long int sp_max; /* days before change required */
+ <!-- .br -->
+ long int sp_warn; /* days warning for expiration */
+ <!-- .br -->
+ long int sp_inact; /* days before account inactive */
+ <!-- .br -->
+ long int sp_expire; /* date when account expires */
+ <!-- .br -->
+ unsigned long int sp_flag; /* reserved for future use */
+ <!-- .br -->
+ <!-- .in \-.5i -->
+ }
+ </para>
+
+ <para>The meanings of each field are</para>
+
+ <para>sp_namp - pointer to null-terminated user name.
+ <!-- .br -->
+ sp_pwdp - pointer to null-terminated password.
+ <!-- .br -->
+ sp_lstchg - days since Jan 1, 1970 password was last changed.
+ <!-- .br -->
+ sp_min - days before which password may not be changed.
+ <!-- .br -->
+ sp_max - days after which password must be changed.
+ <!-- .br -->
+ sp_warn - days before password is to expire that user is warned
+ of pending password expiration.
+ <!-- .br -->
+ sp_inact - days after password expires that account is considered
+ inactive and disabled.
+ <!-- .br -->
+ sp_expire - days since Jan 1, 1970 when account will be disabled.
+ <!-- .br -->
+ sp_flag - reserved for future use.
+ </para>
+ </refsect1>
+
+ <refsect1 id='description2'>
+ <title>DESCRIPTION</title>
+ <para>
+ <emphasis remap='B'>getspent</emphasis>, <emphasis
+ remap='B'>getspname</emphasis> <emphasis
+ remap='B'>fgetspent</emphasis>, and <emphasis
+ remap='B'>sgetspent</emphasis> each return a pointer to a <emphasis
+ remap='B'>struct spwd</emphasis>. <emphasis
+ remap='B'>getspent</emphasis> returns the next entry from the file,
+ and <emphasis remap='B'>fgetspent</emphasis> returns the next entry
+ from the given stream, which is assumed to be a file of the proper
+ format. <emphasis remap='B'>sgetspent</emphasis> returns a pointer to
+ a <emphasis remap='B'>struct spwd</emphasis> using the provided string
+ as input. <emphasis remap='B'>getspnam</emphasis> searches from the
+ current position in the file for an entry matching <emphasis
+ remap='B'>name</emphasis>.
+ </para>
+ <para><emphasis remap='B'>setspent</emphasis> and <emphasis
+ remap='B'>endspent</emphasis> may be used to begin and end,
+ respectively, access to the shadow password file.
+ </para>
+ <para>The <emphasis remap='B'>lckpwdf</emphasis> and <emphasis
+ remap='B'>ulckpwdf</emphasis> routines should be used to insure
+ exclusive access to the <filename>/etc/shadow</filename> file.
+ <emphasis remap='B'>lckpwdf</emphasis> attempts to acquire a lock
+ using <emphasis remap='B'>pw_lock</emphasis> for up to 15 seconds. It
+ continues by attempting to acquire a second lock using <emphasis
+ remap='B'>spw_lock</emphasis> for the remainder of the initial 15
+ seconds. Should either attempt fail after a total of 15 seconds,
+ <emphasis remap='B'>lckpwdf</emphasis> returns -1. When both locks are
+ acquired 0 is returned.
+ </para>
+ </refsect1>
+
+ <refsect1 id='diagnostics'>
+ <title>DIAGNOSTICS</title>
+ <para>Routines return NULL if no more entries are available or if an
+ error occurs during processing. Routines which have <emphasis
+ remap='B'>int</emphasis> as the return value return 0 for success and
+ -1 for failure.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>These routines may only be used by the super user as access to the
+ shadow password file is restricted.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>getpwent</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='shadow.5'>
+ <!-- $Id: shadow.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>shadow</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>shadow</refname>
+ <refpurpose>encrypted password file</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <emphasis remap='I'>shadow</emphasis> contains the encrypted
+ password information for user's accounts
+ and optional the password aging information. Included is
+ </para>
+
+ <para>Login name</para>
+
+ <para>Encrypted password</para>
+
+ <para>Days since Jan 1, 1970 that password was last changed</para>
+
+ <para>Days before password may be changed</para>
+
+ <para>Days after which password must be changed</para>
+
+ <para>Days before password is to expire that user is warned</para>
+
+ <para>Days after password expires that account is disabled</para>
+
+ <para>Days since Jan 1, 1970 that account is disabled</para>
+
+ <para>A reserved field</para>
+
+ <para>The password field must be filled. The encryped password consists
+ of 13 to 24 characters from the 64 characters alphabet a thru z, A
+ thru Z, 0 thru 9, \. and /. Optionally it can start with a "$"
+ character. This means the encrypted password was generated using
+ another (not DES) algorithm. For example if it starts with "$1$" it
+ means the MD5-based algorithm was used.
+ </para>
+
+ <para>
+ Refer to
+ <citerefentry>
+ <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry>
+ for details on how this string is interpreted.
+ </para>
+
+ <para>The date of the last password change is given as the number of
+ days since Jan 1, 1970. The password may not be changed again until
+ the proper number of days have passed, and must be changed after the
+ maximum number of days. If the minimum number of days required is
+ greater than the maximum number of day allowed, this password may not
+ be changed by the user.
+ </para>
+
+ <para>An account is considered to be inactive and is disabled if the
+ password is not changed within the specified number of days after the
+ password expires. An account will also be disabled on the specified
+ day regardless of other password expiration information.
+ </para>
+
+ <para>This information supercedes any password or password age
+ information present in <filename>/etc/passwd</filename>.
+ </para>
+
+ <para>This file must not be readable by regular users if password
+ security is to be maintained.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chage</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>pwconv</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>pwunconv</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>sulogin</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='shadowconfig.8'>
+ <!-- $Id: shadowconfig.8.xml,v 1.5 2005/04/27 18:20:35 kloczek Exp $ -->
+ <refentryinfo>
+ <date>19 Apr 1997</date>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>shadowconfig</refentrytitle>
+ <manvolnum>8</manvolnum>
+ <refmiscinfo class='date'>19 Apr 1997</refmiscinfo>
+ <refmiscinfo class='source'>Debian GNU/Linux</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>shadowconfig</refname>
+ <refpurpose>toggle shadow passwords on and off</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>shadowconfig</command>
+ <group choice='plain'>
+ <arg choice='plain'><replaceable>on</replaceable></arg>
+ <arg choice='plain'><replaceable>off</replaceable></arg>
+ </group>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>shadowconfig</coamand> on will turn shadow passwords on;
+ <emphasis remap='B'>shadowconfig off</emphasis> will turn shadow
+ passwords off. <command>shadowconfig</command> will print an error
+ message and exit with a nonzero code if it finds anything awry. If
+ that happens, you should correct the error and run it again. Turning
+ shadow passwords on when they are already on, or off when they are
+ already off, is harmless.
+ </para>
+
+ <para>
+ Read <filename>/usr/share/doc/passwd/README.debian</filename> for a
+ brief introduction
+ to shadow passwords and related features.
+ </para>
+
+ <para>Note that turning shadow passwords off and on again will lose all
+ password
+ aging information.
+ </para>
+ </refsect1>
+</refentry>
-.\" $Id: su.1,v 1.16 2005/04/12 16:31:06 kloczek Exp $
+.\" $Id: su.1,v 1.18 2005/05/19 10:35:00 kloczek Exp $
.\" Copyright 1989 - 1990, Julianne Frances Haugh
.\" All rights reserved.
.\"
.SH DESCRIPTION
\fBsu\fR is used to become another user during a login session. Invoked
without a username, \fBsu\fR defaults to becoming the super user. The
-optional argument \fB\-\fR may be used to provide an environment similiar to
+optional argument \fB\-\fR may be used to provide an environment similar to
what the user would expect had the user logged in directly.
.PP
Additional arguments may be provided after the username, in which case they
will produce an error message. All attempts, both valid and invalid, are
logged to detect abuses of the system.
.PP
-The current environment is passed to the new shell. The value of fB$PATH\fR
+The current environment is passed to the new shell. The value of \fB$PATH\fR
\is reset to \fB/bin:/usr/bin\fR for normal users, or
\fB/sbin:/bin:/usr/sbin:/usr/bin\fR for the super user. This may be changed
with the \fBENV_PATH\fR and \fBENV_SUPATH\fR definitions in
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='su.1'>
+ <!-- $Id: su.1.xml,v 1.8 2005/05/19 10:35:00 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>su</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="sectdesc">User Commands</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>su</refname>
+ <refpurpose>change user ID or become super-user</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>su</command>
+ <arg choice='opt'>- </arg>
+ <arg choice='opt'>
+ <arg choice='plain'>
+ <replaceable>username</replaceable>
+ </arg>
+ <arg choice='opt'>
+ <replaceable>args</replaceable>
+ </arg>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>su</command> is used to become another user during a login
+ session. Invoked without a username, <command>su</command> defaults to
+ becoming the super user. The optional argument <option>-</option> may
+ be used to provide an environment similar to what the user would
+ expect had the user logged in directly.
+ </para>
+
+ <para>Additional arguments may be provided after the username, in which
+ case they are supplied to the user´s login shell. In particular,
+ an argument of <option>-c</option> will cause the next argument to be
+ treated as a command by most command interpreters. The command will be
+ executed by the shell specified in <filename>/etc/passwd</filename>
+ for the target user.
+ </para>
+
+ <para>The user will be prompted for a password, if appropriate. Invalid
+ passwords will produce an error message. All attempts, both valid and
+ invalid, are logged to detect abuses of the system.
+ </para>
+
+ <para>The current environment is passed to the new shell. The value of
+ <emphasis remap='B'>$PATH</emphasis> is reset to
+ <filename>/bin:/usr/bin</filename> for normal users, or
+ <filename>/sbin:/bin:/usr/sbin:/usr/bin</filename> for the super user.
+ This may be changed with the <emphasis remap='B'>ENV_PATH</emphasis>
+ and <emphasis remap='B'>ENV_SUPATH</emphasis> definitions in
+ <filename>/etc/login.defs</filename>.
+ </para>
+
+ <para>A subsystem login is indicated by the presense of a "*" as the
+ first character of the login shell. The given home directory will be
+ used as the root of a new filesystem which the user is actually logged
+ into.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>
+ This version of <command>su</command> has many compilation options,
+ only some of which may be in use at any particular site.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>suauth</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh <jockgrrl@ix.netcom.com></para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='suauth.5'>
+ <!-- $Id: suauth.5.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>suauth</refentrytitle>
+ <manvolnum>5</manvolnum>
+ <refmiscinfo class='source'>Feb 14, 1996</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>suauth</refname>
+ <refpurpose>Detailed su control file</refpurpose>
+ </refnamediv>
+ <!-- body begins here -->
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>/etc/suauth</command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>The file <filename>/etc/suauth</filename> is referenced
+ whenever the su command is called. It can change the behaviour of the
+ su command, based upon
+ </para>
+
+ <!-- .RS -->
+ <literallayout remap='.nf'>
+ 1) the user su is targetting
+ </literallayout>
+ <!-- .fi -->
+ <para>2) the user executing the su command (or any groups he might be
+ a member of)
+ </para>
+ <!-- .RE -->
+
+ <para>The file is formatted like this, with lines starting with a #
+ being treated as comment lines and ignored;
+ </para>
+
+ <!-- .RS -->
+ <literallayout remap='RS'>
+ to-id:from-id:ACTION
+ </literallayout>
+ <!-- remap='RE' -->
+
+ <para>Where to-id is either the word
+ <emphasis remap='B'>ALL</emphasis>,
+ a list of usernames
+ delimited by "," or the words
+ <emphasis remap='B'>ALL EXCEPT</emphasis>
+ followed by a list
+ of usernames delimited by ","
+ </para>
+
+ <para>from-id is formatted the same as to-id except the extra word
+ <emphasis remap='B'>GROUP</emphasis>
+ is recognised.
+ <emphasis remap='B'>ALL EXCEPT GROUP</emphasis>
+ is perfectly valid too.
+ Following
+ <emphasis remap='B'>GROUP</emphasis>
+ appears one or more group names, delimited by
+ ",". It is not sufficient to have primary group id of the
+ relevant group, an entry in
+ <citerefentry>
+ <refentrytitle>/etc/group</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ is neccessary.
+ </para>
+
+ <para>Action can be one only of the following currently supported
+ options.
+ </para>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>DENY</emphasis>
+ </term>
+ <listitem>
+ <para>The attempt to su is stopped before a password is
+ even asked for.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>NOPASS</emphasis>
+ </term>
+ <listitem>
+ <para>The attempt to su is automatically successful; no
+ password is
+ asked for.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <emphasis remap='B'>OWNPASS</emphasis>
+ </term>
+ <listitem>
+ <para>For the su command to be successful, the user must
+ enter
+ his or her own password. They are told this.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Note there are three separate fields delimited by a colon. No
+ whitespace must surround this colon. Also note that the file
+ is examined sequentially line by line, and the first applicable
+ rule is used without examining the file further. This makes it
+ possible for a system administrator to exercise as fine control
+ as he or she wishes.
+ </para>
+ </refsect1>
+
+ <refsect1 id='example'>
+ <title>EXAMPLE</title>
+ <literallayout remap='.nf'>
+ # sample /etc/suauth file
+ #
+ # A couple of privileged usernames may
+ # su to root with their own password.
+ #
+ root:chris,birddog:OWNPASS
+ #
+ # Anyone else may not su to root unless in
+ # group wheel. This is how BSD does things.
+ #
+ root:ALL EXCEPT GROUP wheel:DENY
+ #
+ # Perhaps terry and birddog are accounts
+ # owned by the same person.
+ # Access can be arranged between them
+ # with no password.
+ #
+ terry:birddog:NOPASS
+ birddog:terry:NOPASS
+ #
+ </literallayout>
+ <!-- .fi -->
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/suauth</filename></term>
+ <listitem></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='bugs'>
+ <title>BUGS</title>
+ <para>There could be plenty lurking. The file parser is particularly
+ unforgiving about syntax errors, expecting no spurious whitespace
+ (apart from beginning and end of lines), and a specific token
+ delimiting different things.
+ </para>
+ </refsect1>
+
+ <refsect1 id='diagnostics'>
+ <title>DIAGNOSTICS</title>
+ <para>An error parsing the file is reported using
+ <citerefentry>
+ <refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ as level ERR on
+ facility AUTH.
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <literallayout remap='.nf'>
+ Chris Evans (lady0110@sable.ox.ac.uk)
+ Lady Margaret Hall
+ Oxford University
+ England
+ </literallayout>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='sulogin.8'>
+ <!-- $Id: sulogin.8.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>sulogin</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>sulogin</refname>
+ <refpurpose>Single-user login</refpurpose>
+ </refnamediv>
+
+ <refsect1 id='syntax'>
+ <title>SYNTAX</title>
+ <para>
+ <command>sulogin</coamand> [<emphasis remap='I'>
+ tty-device
+ </emphasis>
+ ]
+ </para>
+ </refsect1>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>sulogin</coamand> is invoked by <command>init</coamand> prior
+ to allowing the user access to the system when in single user mode.
+ This feature may only be available on certain systems where
+ <command>init</coamand> has been modified accordingly, or where the
+ <filename>/etc/inittab</filename> has an entry for a single user
+ login.
+ </para>
+
+ <para>The user is prompted</para>
+
+ <para>Type control-d to proceed with normal startup,
+ <!-- .br -->
+ (or give root password for system maintenance):
+ </para>
+
+ <para>Input and output will be performed with the standard file
+ descriptors unless
+ the optional device name argument is provided.
+ </para>
+
+ <para>If the user enters the correct root password, a login session is
+ initiated.
+ When <emphasis remap='B'>EOF</emphasis> is pressed instead, the
+ system enters multi-user mode.
+ </para>
+
+ <para>After the user exits the single-user shell, or presses <emphasis
+ remap='B'>EOF</emphasis>, the system begins the initialization process
+ required to enter multi-user mode.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>
+ This command can only be used if <command>init</coamand> has been
+ modified to call <command>sulogin</coamand> instead of
+ <filename>/bin/sh</filename>, or if the user has set the <emphasis
+ remap='I'>inittab</emphasis> to support a single user login. For
+ example, the line:
+ </para>
+ <!-- .br -->
+
+ <para>co:s:respawn:/etc/sulogin /dev/console</para>
+ <!-- .br -->
+
+ <para>should execute the sulogin command in single user mode.</para>
+
+ <para>As complete an environment as possible is created. However,
+ various devices
+ may be unmounted or uninitialized and many of the user commands may
+ be
+ unavailable or nonfunctional as a result.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>init</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='useradd.8'>
+ <!-- $Id: useradd.8.xml,v 1.6 2005/04/27 18:20:35 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>useradd</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>useradd</refname>
+ <refpurpose>Create a new user or update default new user information</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>useradd</command>
+ <arg choice='opt'>-c <replaceable>comment</replaceable></arg>
+ <arg choice='opt'>-d <replaceable>home_dir</replaceable></arg>
+ <arg choice='opt'>-e <replaceable>expire_date</replaceable></arg>
+ <arg choice='opt'>-f <replaceable>inactive_days</replaceable></arg>
+ <sbr/>
+ <arg choice='opt'>-g <replaceable>initial_group</replaceable></arg>
+ <arg choice='opt'>
+ <arg choice='plain'>-G <replaceable>group1</replaceable></arg>
+ <arg choice='opt'>
+ <arg choice='plain' rep='repeat'>
+ <replaceable>,group2,</replaceable>
+ </arg>
+ <arg choice='plain'>
+ <replaceable>,</replaceable>
+ </arg>
+ <arg choice='opt'>
+ <replaceable>groupN</replaceable>
+ </arg>
+ </arg>
+ </arg>
+ <sbr/>
+ <arg choice='opt'>
+ <arg choice='opt'>-M </arg><arg choice='plain'>-m </arg>
+ <arg choice='opt'>-k <replaceable>skeleton_dir</replaceable></arg>
+ </arg>
+ <arg choice='opt'>-o </arg>
+ <arg choice='opt'>-p <replaceable>passwd</replaceable></arg>
+ <arg choice='opt'>-s <replaceable>shell</replaceable></arg>
+ <sbr/>
+ <arg choice='opt'>-u <replaceable>uid</replaceable></arg>
+ <arg choice='plain'><replaceable>login</replaceable></arg>
+ <arg choice='plain'><replaceable>useradd</replaceable></arg>
+ <arg choice='plain'>-D </arg>
+ <arg choice='opt'>-g <replaceable>group</replaceable></arg>
+ <arg choice='opt'>-b <replaceable>home_dir</replaceable></arg>
+ <arg choice='opt'>-e <replaceable>expire_date</replaceable></arg>
+ <sbr/>
+ <arg choice='opt'>-f <replaceable>inactive_days</replaceable></arg>
+ <arg choice='opt'>-s <replaceable>shell</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <refsect2 id='creating_new_users'>
+ <title>Creating New Users</title>
+ <para>
+ When invoked without the <option>-D</option> option, the
+ <command>useradd</command> command creates a new user account using
+ the values specified on the command line and the default values from
+ the system. Depending on command line options, the useradd command
+ will update system files and may also create the new user's home
+ directory and copy initial files.
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>The options which apply to the <command>useradd</command> command are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-c</option> <replaceable>comment</replaceable>
+ </term>
+ <listitem>
+ <para>The new user's password file comment field.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-d</option> <replaceable>home_dir</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The new user will be created using <emphasis remap='I'> home_dir
+ </emphasis>as the value for the user's login directory. The
+ default is to append the <emphasis remap='I'>login</emphasis>
+ name to <emphasis remap='I'>home</emphasis> and use that as the
+ login directory name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-e</option> <replaceable>expire_date</replaceable>
+ </term>
+ <listitem>
+ <para>The date on which the user account will be disabled. The
+ date is specified in the format <emphasis
+ remap='I'>YYYY-MM-DD</emphasis>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-f</option> <replaceable>inactive_days</replaceable>
+ </term>
+ <listitem>
+ <para>The number of days after a password expires until the
+ account is permanently disabled. A value of 0 disables the
+ account as soon as the password has expired, and a value of -1
+ disables the feature. The default value is -1.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-g</option> <replaceable>initial_group</replaceable>
+ </term>
+ <listitem>
+ <para>The group name or number of the user's initial login group.
+ The group name must exist. A group number must refer to an
+ already existing group. The default group number is 1 or
+ whatever is specified in
+ <filename>/etc/default/useradd</filename>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-G</option> <replaceable>group1</replaceable>[<emphasis remap='I'>
+ ,group2,...,
+ </emphasis>
+ [<emphasis remap='I'>groupN</emphasis>]]]
+ </term>
+ <listitem>
+ <para>A list of supplementary groups which the user is also a
+ member of. Each group is separated from the next by a comma,
+ with no intervening whitespace. The groups are subject to the
+ same restrictions as the group given with the
+ <option>-g</option> option. The default is for the user to
+ belong only to the initial group.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-M</option>
+ </term>
+ <listitem>
+ <para>RedHat added the CREATE_HOME option in login.defs in their
+ version of shadow-utils (which makes -m the default, with new -M
+ option to turn it off). Unfortunately, this changes the way
+ useradd works (it can be run by scripts expecting some standard
+ behaviour), compared to other Unices and other Linux
+ distributions, and also adds a lot of confusion.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-m</option>
+ </term>
+ <listitem>
+ <para>The user's home directory will be created if it does not
+ exist. The files contained in <emphasis
+ remap='I'>skeleton_dir</emphasis> will be copied to the home
+ directory if the <option>-k</option> option is used, otherwise
+ the files contained in <filename>/etc/skel</filename> will be
+ used instead. Any directories contained in <emphasis remap='I'>
+ skeleton_dir</emphasis> or <filename>/etc/skel</filename> will
+ be created in the user's home directory as well. The
+ <option>-k</option> option is only valid in conjunction with the
+ <option>-m</option> option. The default is to not create the
+ directory and to not copy any files.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-o</option>
+ </term>
+ <listitem>
+ <para>Allow create user with duplicate (non-unique) UID.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-p</option> <replaceable>passwd</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The encrypted password, as returned by <citerefentry>
+ <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry>. The default is to disable the account.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-s</option> <replaceable>shell</replaceable>
+ </term>
+ <listitem>
+ <para>The name of the user's login shell. The default is to
+ leave this field
+ blank, which causes the system to select the default
+ login shell.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-u</option> <replaceable>uid</replaceable>
+ </term>
+ <listitem>
+ <para>The numerical value of the user's ID. This value must be
+ unique, unless the <option>-o</option> option is used. The value
+ must be non-negative. The default is to use the smallest ID
+ value greater than 999 and greater than every other user.
+ Values between 0 and 999 are typically reserved for system
+ accounts.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <refsect2 id='changing_the_default_values'>
+ <title>Changing the default values</title>
+ <para>
+ When invoked with the <option>-D</option> option,
+ <command>useradd</command> will either display the current default
+ values, or update the default values from the command line. The
+ valid options are
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-b</option> <replaceable>home_dir</replaceable>
+ </term>
+ <listitem>
+ <para>The initial path prefix for a new user's home directory.
+ The user's name will be affixed to the end of <emphasis
+ remap='I'>home</emphasis> to create the new directory name if
+ the <option>-d</option> option is not used when creating a new
+ account.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-e</option> <replaceable>expire_date</replaceable>
+ </term>
+ <listitem>
+ <para>The date on which the user account is disabled.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-f</option> <replaceable>inactive</replaceable>
+ </term>
+ <listitem>
+ <para>The number of days after a password has expired before the
+ account will be disabled.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-g</option> <replaceable>group</replaceable>
+ </term>
+ <listitem>
+ <para>The group name or ID for a new user's initial group. The
+ named group must exist, and a numerical group ID must have an
+ existing entry .
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-s</option> <replaceable>shell</replaceable>
+ </term>
+ <listitem>
+ <para>The name of the new user's login shell. The named program
+ will be used for all future new user accounts.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>If no options are specified, <command>useradd</command>
+ displays the current default values.
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <refsect1 id='notes'>
+ <title>NOTES</title>
+ <para>The system administrator is responsible for placing the default
+ user files in the <filename>/etc/skel/</filename> directory.
+ </para>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>You may not add a user to an NIS group. This must be performed on
+ the NIS server.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/default/useradd</filename></term>
+ <listitem>default information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/skel/</filename></term>
+ <listitem>directory containing default files</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='exit_values'>
+ <title>EXIT VALUES</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <command>useadd</coamand> command exits with the following
+ values:
+ </term>
+ <listitem>
+ <!-- .br -->
+ <para>
+ <literal>0</literal> - success
+ <!-- .br -->
+ <literal>1</literal> - can't update password file
+ <!-- .br -->
+ <literal>2</literal> - invalid command syntax
+ <!-- .br -->
+ <literal>3</literal> - invalid argument to option
+ <!-- .br -->
+ <literal>4</literal> - uid already in use (and no -o)
+ <!-- .br -->
+ <literal>6</literal> - specified group doesn't exist
+ <!-- .br -->
+ <literal>9</literal> - username already in use
+ <!-- .br -->
+ <literal>10</literal> - can't update group file
+ <!-- .br -->
+ <literal>12</literal> - can't create home directory
+ <!-- .br -->
+ <literal>13</literal> - can't create mail spool
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='userdel.8'>
+ <!-- $Id: userdel.8.xml,v 1.5 2005/04/27 16:44:12 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>USERDEL</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>userdel</refname>
+ <refpurpose>Delete a user account and related files</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>userdel</command>
+ <arg choice='opt'>-r </arg>
+ <arg choice='plain'>
+ <replaceable>login</replaceable>
+ </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ The <command>userdel</command> command modifies the system account
+ files, deleting all entries that refer to <emphasis
+ remap='I'>login</emphasis>. The named user must exist.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ The options which apply to the <command>userdel</command> command are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-r</option>
+ </term>
+ <listitem>
+ <para>Files in the user's home directory will be removed along
+ with the home directory itself and the user's mail spool. Files
+ located in other file systems will have to be searched for and
+ deleted manually.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='exit_values'>
+ <title>EXIT VALUES</title>
+ <variablelist remap='TP'>
+ <varlistentry>
+ <term>
+ The <command>userdel</command> command exits with the following
+ values:
+ </term>
+ <listitem>
+ <!-- .br -->
+ <para>
+ <literal>0</literal> - success
+ <!-- .br -->
+ <literal>1</literal> - can't update password file
+ <!-- .br -->
+ <literal>2</literal> - invalid command syntax
+ <!-- .br -->
+ <literal>6</literal> - specified user doesn't exist
+ <!-- .br -->
+ <literal>8</literal> - user currently logged in
+ <!-- .br -->
+ <literal>10</literal> - can't update group file
+ <!-- .br -->
+ <literal>12</literal> - can't remove home directory
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>
+ <command>userdel</command> will not allow you to remove an account if
+ the user is currently logged in. You must kill any running processes
+ which belong to an account that you are deleting. You may not remove
+ any NIS attributes on an NIS client. This must be performed on the NIS
+ server.
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='usermod.8'>
+ <!-- $Id: usermod.8.xml,v 1.5 2005/04/28 13:57:45 kloczek Exp $ -->
+ <refmeta>
+ <refentrytitle>usermod</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>usermod</refname>
+ <refpurpose>Modify a user account</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>usermod</command>
+ <arg choice='opt'>-c <replaceable>comment</replaceable></arg>
+ <arg choice='opt'>
+ <arg choice='plain'>-d <replaceable>home_dir</replaceable></arg>
+ <arg choice='opt'>-m </arg>
+ </arg>
+ <arg choice='opt'>-e <replaceable>expire_date</replaceable></arg>
+ <arg choice='opt'>-f <replaceable>inactive_time</replaceable></arg>
+ <arg choice='opt'>-g <replaceable>initial_group</replaceable></arg>
+ <sbr/>
+ <arg choice='opt'>
+ <arg choice='plain'>-G <replaceable>group1</replaceable></arg>
+ <arg choice='opt'>
+ <arg choice='plain' rep='repeat'><replaceable>,group2,</replaceable></arg>
+ <arg choice='plain'><replaceable>,</replaceable></arg>
+ <arg choice='opt'><replaceable>groupN</replaceable></arg>
+ </arg>
+ </arg>
+ <sbr/>
+ <arg choice='opt'>-l <replaceable>login_name</replaceable></arg>
+ <arg choice='opt'>-p <replaceable>passwd</replaceable></arg>
+ <arg choice='opt'>-s <replaceable>shell</replaceable></arg>
+ <arg choice='opt'>
+ <arg choice='plain'>-u <replaceable>uid</replaceable></arg>
+ <arg choice='opt'>-o </arg>
+ </arg>
+ <sbr/>
+ <group choice='opt'>
+ <arg choice='plain'>-L </arg><arg choice='plain'>-U </arg>
+ </group>
+ <arg choice='plain'><replaceable>login</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ The <command>usermod</command> command modifies the system account
+ files to reflect the changes that are specified on the command line.
+ </para>
+ </refsect1>
+
+ <refsect1 id='options'>
+ <title>OPTIONS</title>
+ <para>
+ The options which apply to the <command>usermod</command> command
+ are:
+ </para>
+ <variablelist remap='IP'>
+ <varlistentry>
+ <term>
+ <option>-c</option> <replaceable>comment</replaceable>
+ </term>
+ <listitem>
+ <para>The new value of the user's password file comment
+ field. It is normally modified using the <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>utility.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-d</option> <replaceable>home_dir</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The user's new login directory. If the <option>-m</option>
+ option is given the contents of the current home directory will
+ be moved to the new home directory, which is created if it does
+ not already exist.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-e</option> <replaceable>expire_date</replaceable>
+ </term>
+ <listitem>
+ <para>The date on which the user account will be disabled. The
+ date is specified in the format <emphasis remap='I'>YYYY-MM-DD
+ </emphasis>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-f</option> <replaceable>inactive_days</replaceable>
+ </term>
+ <listitem>
+ <para>The number of days after a password expires until the
+ account is permanently disabled. A value of 0 disables the
+ account as soon as the password has expired, and a value of -1
+ disables the feature. The default value is -1.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-g</option> <replaceable>initial_group</replaceable>
+ </term>
+ <listitem>
+ <para>The group name or number of the user's new initial login
+ group. The group name must exist. A group number must refer to
+ an already existing group. The default group number is 1.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-G</option> <replaceable>group1</replaceable>[<emphasis remap='I'>
+ ,group2,...,
+ </emphasis>
+ [<emphasis remap='I'>groupN</emphasis>]]]
+ </term>
+ <listitem>
+ <para>A list of supplementary groups which the user is also a
+ member of. Each group is separated from the next by a comma,
+ with no intervening whitespace. The groups are subject to the
+ same restrictions as the group given with the
+ <option>-g</option> option. If the user is currently a member of
+ a group which is not listed, the user will be removed from the
+ group.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-l</option> <replaceable>login_name</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The name of the user will be changed from <emphasis
+ remap='I'>login </emphasis> to <emphasis
+ remap='I'>login_name</emphasis>. Nothing else is changed. In
+ particular, the user's home directory name should probably be
+ changed to reflect the new login name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-L</option>
+ </term>
+ <listitem>
+ <para>Lock a user's password. This puts a '!' in front of the
+ encrypted password, effectively disabling the password. You
+ can't use this option with <option>-p</option> or
+ <option>-U</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-o</option>
+ </term>
+ <listitem>
+ <para>
+ When used with the <option>-u</option> option, this option
+ allows to change the user ID to a non-unique value.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-p</option> <replaceable>passwd</replaceable>
+ </term>
+ <listitem>
+ <para>
+ The encrypted password, as returned by <citerefentry>
+ <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-s</option> <replaceable>shell</replaceable>
+ </term>
+ <listitem>
+ <para>The name of the user's new login shell. Setting this field
+ to blank causes the system to select the default login shell.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-u</option> <replaceable>uid</replaceable>
+ </term>
+ <listitem>
+ <para>The numerical value of the user's ID. This value must be
+ unique, unless the <option>-o</option> option is used. The value
+ must be non-negative. Values between 0 and 99 are typically
+ reserved for system accounts. Any files which the user owns and
+ which are located in the directory tree rooted at the user's
+ home directory will have the file user ID changed automatically.
+ Files outside of the user's home directory must be altered
+ manually.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <option>-U</option>
+ </term>
+ <listitem>
+ <para>Unlock a user's password. This removes the '!' in front of
+ the encrypted password. You can't use this option with
+ <option>-p</option> or <option>-L</option>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>
+ <command>usermod</command> will not allow you to change the name of a
+ user who is logged in. You must make certain that the named user is
+ not executing any processes when this command is being executed if the
+ user's numerical user ID is being changed. You must change the owner
+ of any crontab files manually. You must change the owner of any at
+ jobs manually. You must make any changes involving NIS on the NIS
+ server.
+ </para>
+ </refsect1>
+
+ <refsect1 id='files'>
+ <title>FILES</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>/etc/passwd</filename></term>
+ <listitem>user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/shadow</filename></term>
+ <listitem>secure user account information</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>/etc/group</filename></term>
+ <listitem>group account information</listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>useradd</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum>
+ </citerefentry>.
+ </para>
+ </refsect1>
+
+ <refsect1 id='author'>
+ <title>AUTHOR</title>
+ <para>Julianne Frances Haugh (jockgrrl@ix.netcom.com)</para>
+ </refsect1>
+</refentry>
-.\"$Id: vipw.8,v 1.8 2005/04/05 18:47:50 kloczek Exp $
+.\"$Id: vipw.8,v 1.10 2005/04/27 08:29:36 kloczek Exp $
.TH VIPW 8 "26 Sep 1997"
.SH NAME
vipw, vigr \- edit the password, group, shadow\-password, or shadow\-group file.
.SH DESCRIPTION
\fBvipw\fR and \fBvigr\fR will edit the files \fI/etc/passwd\fR and
\fI/etc/group\fR, respectively. With the \fB\-s\fR flag, they will edit the
-shadow versions of those files, fI/etc/shadow\fR and \fI/etc/gshadow\fR,
+shadow versions of those files, \fI/etc/shadow\fR and \fI/etc/gshadow\fR,
respectively. The programs will set the appropriate locks to prevent file
corruption. When looking for an editor, the programs will first try the
-environment variable \fBVISUAL\fR, then the environment variable
-\fBEDITOR\fR, and finally the default editor,
-.BR vi .
+environment variable \fB$VISUAL\fR, then the environment variable
+\fB$EDITOR\fR, and finally the default editor, \fBvi\fR(1).
.SH "SEE ALSO"
.BR group (5),
.BR passwd (5),
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<refentry id='vipw.8'>
+ <!-- $Id: vipw.8.xml,v 1.6 2005/04/28 13:54:06 kloczek Exp $ -->
+ <refentryinfo>
+ <date>26 Sep 1997</date>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>vipw</refentrytitle>
+ <manvolnum>8</manvolnum>
+ <refmiscinfo class='date'>26 Sep 1997</refmiscinfo>
+ </refmeta>
+ <refnamediv id='name'>
+ <refname>vipw</refname>
+ <refname>vigr</refname>
+ <refpurpose>edit the password, group, shadow-password, or shadow-group
+ file.
+ </refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv id='synopsis'>
+ <cmdsynopsis>
+ <command>vipw</command><arg choice='opt'>-s </arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>vigr</command><arg choice='opt'>-s </arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1 id='description'>
+ <title>DESCRIPTION</title>
+ <para>
+ <command>vipw</command> and <command>vigr</command> will edit the
+ files <filename>/etc/passwd</filename> and
+ <filename>/etc/group</filename>, respectively. With the
+ <option>-s</option> flag, they will edit the shadow versions of those
+ files, <filename>/etc/shadow</filename> and
+ <filename>/etc/gshadow</filename>, respectively. The programs will set
+ the appropriate locks to prevent file corruption. When looking for an
+ editor, the programs will first try the environment variable
+ <envar>$VISUAL</envar>, then the environment variable <emphasis
+ remap='B'>$EDITOR</emphasis>, and finally the default editor, <citerefentry>
+ <refentrytitle>vi</refentrytitle><manvolnum>1</manvolnum>
+ </citerefentry>.
+ </para>
+ </refsect1>
+
+ <refsect1 id='see_also'>
+ <title>SEE ALSO</title>
+ <para>
+ <citerefentry>
+ <refentrytitle>group</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>,
+ <citerefentry>
+ <refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
+ </citerefentry>
+ </para>
+ </refsect1>
+</refentry>
subdir = man/zh_CN
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
subdir = man/zh_TW
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
--- /dev/null
+2005-05-04 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.in.in: Upgrade to gettext-0.14.3.
+ * Rules-quot: Upgrade to gettext-0.14.3.
+
# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 1995-1997, 2000-2005 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
# functionality.
# Please note that the actual code of GNU gettext is covered by the GNU
# General Public License and is *not* in the public domain.
+#
+# Origin: gettext-0.14.3
PACKAGE = @PACKAGE@
VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
SHELL = /bin/sh
@SET_MAKE@
DUMMYPOFILES = @DUMMYPOFILES@
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
$(POFILES) $(GMOFILES) \
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
# Makevars gets inserted here. (Don't remove this line!)
.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
.po.mo:
@echo "$(MSGFMT) -c -o $@ $<"; \
all-yes: stamp-po
all-no:
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
# been loosely updated. Its purpose is that when a developer or translator
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
# $(POFILES) has been designed to not touch files that don't need to be
# changed.
stamp-po: $(srcdir)/$(DOMAIN).pot
- test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS)
- @echo "touch stamp-po"
- @echo timestamp > stamp-poT
- @mv stamp-poT stamp-po
+ test ! -f $(srcdir)/$(DOMAIN).pot || \
+ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @test ! -f $(srcdir)/$(DOMAIN).pot || { \
+ echo "touch stamp-po" && \
+ echo timestamp > stamp-poT && \
+ mv stamp-poT stamp-po; \
+ }
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
# otherwise packages like GCC can not be built if only parts of the source
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+ else \
+ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+ fi; \
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
--files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \
- --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
+ --msgid-bugs-address="$$msgid_bugs_address"
test ! -f $(DOMAIN).po || { \
if test -f $(srcdir)/$(DOMAIN).pot; then \
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
# Note that a PO file is not touched if it doesn't need to be changed.
$(POFILES): $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
+ if test -f "$(srcdir)/$${lang}.po"; then \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+ else \
+ $(MAKE) $${lang}.po-create; \
+ fi
install: install-exec install-data
$(MAKE) update-po
@$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
+dist2: stamp-po $(DISTFILES)
dists="$(DISTFILES)"; \
if test "$(PACKAGE)" = "gettext-tools"; then \
dists="$$dists Makevars.template"; \
fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ dists="$$dists $(DOMAIN).pot stamp-po"; \
+ fi; \
if test -f $(srcdir)/ChangeLog; then \
dists="$$dists ChangeLog"; \
fi; \
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
for file in $$dists; do \
if test -f $$file; then \
- cp -p $$file $(distdir); \
+ cp -p $$file $(distdir) || exit 1; \
else \
- cp -p $(srcdir)/$$file $(distdir); \
+ cp -p $(srcdir)/$$file $(distdir) || exit 1; \
fi; \
done
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
$(MAKE) update-gmo
+# General rule for creating PO files.
+
+.nop.po-create:
+ @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+ exit 1
+
# General rule for updating PO files.
.nop.po-update:
update-gmo: Makefile $(GMOFILES)
@:
-Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
$(SHELL) ./config.status
.SUFFIXES: .insert-header .po-update-en
+en@quot.po-create:
+ $(MAKE) en@quot.po-update
+en@boldquot.po-create:
+ $(MAKE) en@boldquot.po-update
+
en@quot.po-update: en@quot.po-update-en
en@boldquot.po-update: en@boldquot.po-update-en
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-05-09 12:03+0100\n"
"Last-Translator: Safir Šećerović <sapphire@linux.org.ba>\n"
"Language-Team: Bosnian <lokal@lugbih.org>\n"
msgid "malloc(%d) failed\n"
msgstr ""
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr ""
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr ""
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr ""
msgstr ""
"Project-Id-Version: shadow 4.0.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-06-16 20:58:19+0200\n"
"Last-Translator: Guillem Jover <guillem@debian.org>\n"
"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) ha fallat\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "No s'ha pogut reservar espai per a la informació de configuració.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Disculpeu.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "hi ha massa grups\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-19 21:17+0200\n"
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
msgid "malloc(%d) failed\n"
msgstr "volání malloc(%d) selhalo\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Nemohu alokovat dostatek místa pro konfigurační údaje.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Použití: lastlog [volby]\n"
"\n"
"Volby:\n"
-" -u, --login LOGIN\tzobrazí záznamy lastlogu pro uživatele LOGIN\n"
+" -u, --user LOGIN\tzobrazí záznamy lastlogu pro uživatele LOGIN\n"
" -h, --help\t\tzobrazí tuto nápovědu a skončí\n"
" -t, --time DNŮ\tzobrazí záznamy lastlogu novější než DNŮ\n"
msgid "Sorry.\n"
msgstr "Lituji.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "příliš mnoho skupin\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-19 10:17+0200\n"
"Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) mislykkedes\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Kunne ikke frigøre plads til opsætningsoplysninger.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "opsætningsfejl - ukendt punkt %s (informér administrator)\n"
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Brug: lastlog [tilvalg]\n"
"\n"
"Tilvalg:\n"
-" -u, --login LOGIND\tvis lastlog-optegnelser for brugeren med det angivne "
+" -u, --user LOGIND\tvis lastlog-optegnelser for brugeren med det angivne "
"LOGIND\n"
" -h, --help\t\tdvis denne hjælpebesked og afslut\n"
" -t, --time DAGE\tvis kun lastlog-optegnelser, der er nyere end DAGE\n"
msgid "Sorry.\n"
msgstr "Beklager.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "for mange grupper\n"
msgstr ""
"Project-Id-Version: shadow 19990709\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2002-03-11 12:02-0100\n"
"Last-Translator: Frank Schmid <frank@cs-schmid.de>\n"
"Language-Team: Frank Schmid <frank@cs-schmid.de>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) fehlgeschlagen\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Kann keinen Speicherplatz für Konfigurationsinformation reservieren.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Entschuldigung.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "zu viele Gruppen\n"
msgstr ""
"Project-Id-Version: Shadow 980726\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 1998-12-28 20:35:31+0100\n"
"Last-Translator: Nikos Mavroyanopoulos <nmav@i-net.paiko.gr>\n"
"Language-Team: Hellenic <el@li.org>\n"
msgid "malloc(%d) failed\n"
msgstr "Η κλήση malloc(%d) απέτυχε\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Αδυναμία δέσμευσης χώρου για πληροφορίες διαμόρφωσης.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Λυπάμαι.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "πάρα πολλές ομάδες\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-18 23:39+0200\n"
"Last-Translator: Rubén Porras Campo <nahoo@inicia.es>\n"
"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
msgid "malloc(%d) failed\n"
msgstr "falló malloc(%d)\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "No pude reservar espacio para la información de configuración.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Modo de uso: lastlog [opciones]\n"
"\n"
"Opciones:\n"
-" -u, --login USUARIO\tmuestra el registro lastlog para el usuario\n"
+" -u, --user USUARIO\tmuestra el registro lastlog para el usuario\n"
" especificado\n"
" -h, --help\t\tmuestra este mensaje de ayuda y termina\n"
" -t, --time DÍAS\tmuestra sólo los registros lastlog más recientes\n"
msgid "Sorry.\n"
msgstr "Disculpe.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "demasiados grupos\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-19 21:28+0200\n"
"Last-Translator: Iaki Larraaga Murgoitio <dooteo@euskalgnu.org>\n"
"Language-Team: <itzulpena@euskalgnu.org>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) huts egin du\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Ezin izan da lekua esleitu, konfigurazioaren informaziorako.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Erabilera: lastlog [aukerak]\n"
"\n"
"Aukerak:\n"
-" -u, --login IZENA\tIZENA duen erabiltzailearen lastlog erregistroa \n"
+" -u, --user IZENA\tIZENA duen erabiltzailearen lastlog erregistroa \n"
"\t\t\t\tbistaratzen du\n"
" -h, --help\t\tlaguntzako mezu hau bistaratu eta irten egiten da\n"
" -t, --time EGUNAK\tEGUNAK baino berriagoak diren erregistroak \n"
msgid "Sorry.\n"
msgstr "Barkatu.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "talde gehiegi\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-19 09:23+0300\n"
"Last-Translator: Tommi Vainikainen <thv+debian@iki.fi>\n"
"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) epäonnistui\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Asetustiedoille ei voi varata tilaa.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "asetusvirhe - tuntematon kohta \"%s\" (kerro ylläpidolle)\n"
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Käyttö: lastlog [valitsimet]\n"
"\n"
"Valitsimet:\n"
-" -u, --login TUNNUS Tulosta lastlog-tietue käyttäjälle TUNNUS\n"
+" -u, --user TUNNUS Tulosta lastlog-tietue käyttäjälle TUNNUS\n"
" -h, --help Näytä tämä ohje ja lopeta\n"
" -t, --time PÄIVÄÄ Tulosta vain PÄIVÄÄ tuoreemmat lastlog-tietueet\n"
msgid "Sorry.\n"
msgstr "Pahoittelen.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "liian monta ryhmää\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-20 22:39+0200\n"
"Last-Translator: Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
msgid "malloc(%d) failed\n"
msgstr "échec de malloc(%d)\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr ""
"Impossible d'allouer l'espace pour l'information sur la configuration.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options :\n"
-" -u, --login LOGIN afficher l'enregistrement « lastlog » "
+" -u, --user LOGIN afficher l'enregistrement « lastlog » "
"pour l'utilisateur dont le compte est LOGIN\n"
" -h, --help afficher ce message d'aide et quitter\n"
" -t, --time JOURS afficher uniquement les enregistrements "
msgid "Sorry.\n"
msgstr " \n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "trop de groupes\n"
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-07-21 23:59+0300\n"
"Last-Translator: Lior Kaplan <webmaster@guides.co.il>\n"
"Language-Team: Hebrew <en@li.org>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) נכשל\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "לא יכול להקצות מקום בשביל מידע על הקונפיגורציה.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "שגיאת הגדרות - רכיב לא ידוע '%s' (הודע למנהל)\n"
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr ""
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr ""
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-04-09 00:12+0700\n"
"Last-Translator: Parlin Imanuel Toh <parlin@ui.edu>\n"
"Language-Team: Debian Indonesia <debid@yahoogroups.com>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) gagal\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Tidak dapat mengalokasikan ruang untuk informasi konfigurasi.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Maaf.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "terlalu banyak grup\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-17 21:57+0200\n"
"Last-Translator: Danilo Piazzalunga <danilopiazza@libero.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) non riuscita\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Impossibile allocare spazio per le informazioni di configurazione.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Uso: lastlog [OPZIONI]\n"
"\n"
"Opzioni:\n"
-" -u, --login LOGIN mostra il record di ultimo accesso per l'utente\n"
+" -u, --user LOGIN mostra il record di ultimo accesso per l'utente\n"
" specificato da LOGIN\n"
" -h, --help mostra questo messaggio di aiuto ed esce\n"
" -t, --time GIORNI mostra solo i record di ultimo accesso più recenti\n"
msgid "Sorry.\n"
msgstr "Spiacente.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "troppi gruppi\n"
msgstr ""
"Project-Id-Version: shadow 1990827\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2000-06-18 120:22+0900\n"
"Last-Translator: Yasuyuki Furukawa <furukawa@vinelinux.org>\n"
"Language-Team: Japanese\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) に失敗しました\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "設定情報用の空き容量が確保できませんでした.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "設定エラー - 不明なアイテム '%s'です (notify administrator)\n"
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "申し訳ございません.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "グループが多すぎます\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-19 16:02+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <ko@li.org>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d)에 실패했음\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "설정 정보를 위한 공간 확보를 할 수 없습니다.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"사용법: lastlog [옵션]\n"
"\n"
"옵션:\n"
-" -u, --login LOGIN\tLOGIN이라는 사용자의 최근 기록을 봅니다\n"
+" -u, --user LOGIN\tLOGIN이라는 사용자의 최근 기록을 봅니다\n"
" -h, --help\t\t이 도움말 메세지를 표시하고 끝납니다\n"
" -t, --time DAYS\tDAYS일 내의 최근 로그 기록만 표시합니다\n"
msgid "Sorry.\n"
msgstr "죄송합니다.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "그룹들이 너무나 많습니다\n"
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-06-03 21:42+0200\n"
"Last-Translator: Håvard Korsvoll <korsvoll@skulelinux.no>\n"
"Language-Team: Norwegian (Nynorsk) <i18n-nn@lister.ping.uio.no>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) feilet\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Fant ikke plass til config-info.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "feil med oppsettet - ukjent element «%s» (kontakt administrator)\n"
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Beklager.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "For mange grupper\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-24 15:38+0100\n"
"Last-Translator: Bart Cornelis <cobaco@linux.be>\n"
"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) is mislukt\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Kon geen ruimte toewijzen voor de configuratie-informatie.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Gebruik: lastlog [opties]\n"
"\n"
"Opties:\n"
-" -u, --login LOGIN\tprint het lastlog-record van de gebruiker LOGIN\n"
+" -u, --user LOGIN\tprint het lastlog-record van de gebruiker LOGIN\n"
" -h, --help\t\ttoon dit bericht en sluit af\n"
" -t, --time DAGEN\tprint enkel lastlog-records van de laatste DAGEN dagen\n"
msgid "Sorry.\n"
msgstr "Sorry.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "teveel groepen\n"
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-06-03 21:41+0200\n"
"Last-Translator: Håvard Korsvoll <korsvoll@skulelinux.no>\n"
"Language-Team: Norwegian (Nynorsk) <i18n-nn@lister.ping.uio.no>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) feila\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Klarte ikkje finna plass for oppsettsinformasjon.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "oppsettsfeil - ukjent element «%s» (gje melding til administrator)\n"
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Årsak.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "for mange grupper\n"
msgstr ""
"Project-Id-Version: shadow-4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-02-29 00:27+01:00\n"
"Last-Translator: Tomasz Kłoczko <kloczek@pld.org.pl>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) nie powiodło się\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Nie można przydzielić miejsca dla informacji o konfiguracji.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Użycie: lastlog [opcje]\n"
"\n"
"Opcje:\n"
-" -u, --login LOGIN\twyświetl rekord lastlog tylko dla użytkownika o loginie "
+" -u, --user LOGIN\twyświetl rekord lastlog tylko dla użytkownika o loginie "
"LOGIN\n"
" -h, --help\t\t\twyświetlenie tego opisu i zakończenie\n"
" -t, --time DAYS\twyświetl tylko rekordy lastlog nei starsze niż DAYS dni\n"
msgid "Sorry.\n"
msgstr "Wybacz.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "zbyt wiele grup\n"
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-17 22:55+0000\n"
"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
"Language-Team: Portuguese <traduz@debianpt.org>\n"
msgid "malloc(%d) failed\n"
msgstr "O malloc(%d) falhou\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Não foi possível alocar o espaço para a informação de configuração.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Utilização: lastlog [opções]\n"
"\n"
"Opções:\n"
-" -u, --login LOGIN\tmostra o registo de lastlog para o utilizador LOGIN\n"
+" -u, --user LOGIN\tmostra o registo de lastlog para o utilizador LOGIN\n"
" -h, --help\t\tmostra esta mensagem e sai\n"
" -t, --time DIAS\tmostra apenas registos de lastlog mais recentes que DIAS\n"
msgid "Sorry.\n"
msgstr "Desculpe.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "demasiados grupos\n"
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-06-12 17:16-0300\n"
"Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) falhou\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Não foi possível alocar espaço para a informação de configuração.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Desculpe.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "muitos grupos\n"
# translation of shadow_ro.po to Romanian
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Sorin Batariuc <sorin@bonbon.net>, 2004.
+# Sorin Batariuc <sorin@bonbon.net>, 2004, 2005.
#
msgid ""
msgstr ""
-"Project-Id-Version: ro\n"
+"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
-"PO-Revision-Date: 2004-12-14 18:17+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
+"PO-Revision-Date: 2005-05-14 02:20+0300\n"
"Last-Translator: Sorin Batariuc <sorin@bonbon.net>\n"
-"Language-Team: Romanian\n"
+"Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.3.1\n"
+"Plural-Forms: nplurals=2; plural=n>1\n"
+"X-Generator: KBabel 1.9.1\n"
#: libmisc/addgrps.c:56
#, c-format
msgstr "Nu puteţi schimba $%s\n"
#: libmisc/failure.c:229
-#, fuzzy, c-format
+#, c-format
msgid ""
"%d failure since last login.\n"
"Last was %s on %s.\n"
"%d failures since last login.\n"
"Last was %s on %s.\n"
msgstr[0] ""
-"%d eşuare de la ultima autentificare. Ultima oară a fost %s în %s.\n"
+"%d eşuare de la ultima autentificare.\n"
+"Ultima oară a fost %s în %s.\n"
msgstr[1] ""
-"%d eşuare de la ultima autentificare. Ultima oară a fost %s în %s.\n"
+"%d eşuări de la ultima autentificare.\n"
+"Ultima oară a fost %s în %s.\n"
#: libmisc/limits.c:397
#, c-format
#: libmisc/mail.c:72
msgid "No mail."
-msgstr "N-aveţi mesaje."
+msgstr "Nu aveţi mesaje."
#: libmisc/mail.c:74
msgid "You have mail."
#: libmisc/pam_pass.c:49
msgid "passwd: password updated successfully\n"
-msgstr ""
+msgstr "passwd: parolă actualizată cu succes\n"
#: libmisc/setupenv.c:207
#, c-format
msgid "malloc(%d) failed\n"
msgstr "eşuare malloc(%d)\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Nu pot aloca spaţiu pentru informaţiile despre configurare.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
msgstr "Parola %s: "
#: src/chage.c:112
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
" [-I inactive] [-E expire] [-d last_day] user\n"
msgstr ""
-"Utilizare: %s [-l] [-m min_zile] [-M max_zile] [-W avertiza]\n"
-"\t[-I inactivă] [-E expiră] [-d ultima_zi] utilizator\n"
+"Utilizare: chage [-l] [-m min_zile] [-M max_zile] [-W avertiza]\n"
+" [-I inactivă] [-E expiră] [-d ultima_zi] utilizator\n"
#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
#, c-format
msgstr "Data expirării contului (AAAA-LL-ZZ)"
#: src/chage.c:231
-#, fuzzy, c-format
+#, c-format
msgid "Last password change\t\t\t\t\t: "
-msgstr "Ultima schimbare de parolă (AAAA-LL-ZZ)"
+msgstr "Ultima schimbare de parolă\t\t\t\t\t: "
#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
-#, fuzzy, c-format
+#, c-format
msgid "never\n"
-msgstr "Niciodată\n"
+msgstr "niciodată\n"
#: src/chage.c:244
-#, fuzzy, c-format
+#, c-format
msgid "Password expires\t\t\t\t\t: "
-msgstr "Parola expiră:\t"
+msgstr "Parola expiră:\t\t\t\t\t\t: "
#: src/chage.c:260
-#, fuzzy, c-format
+#, c-format
msgid "Password inactive\t\t\t\t\t: "
-msgstr "Parolă inactivă:\t"
+msgstr "Parolă inactivă\t\t\t\t\t\t: "
#: src/chage.c:274
-#, fuzzy, c-format
+#, c-format
msgid "Account expires\t\t\t\t\t\t: "
-msgstr "Contul expiră:\t"
+msgstr "Contul expiră\t\t\t\t\t\t: "
#: src/chage.c:290
#, c-format
msgid "Minimum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Numărul minim de zile dintre modificările de parolă\t\t: %ld\n"
#: src/chage.c:292
-#, fuzzy, c-format
+#, c-format
msgid "Maximum number of days between password change\t\t: %ld\n"
-msgstr "Numărul maxim de încercări a fost atins (%d)\n"
+msgstr "Numărul maxim de zile dintre modificările de parolă\t\t: %ld\n"
#: src/chage.c:294
#, c-format
msgid "Number of days of warning before password expires\t: %ld\n"
-msgstr ""
+msgstr "Numărul de zile de avertizări dinaintea expirării parolei\t: %ld\n"
#: src/chage.c:431
#, c-format
#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
-#, fuzzy, c-format
+#, c-format
msgid "%s: permission denied.\n"
-msgstr "%s: permisiune refuzată\n"
+msgstr "%s: permisiune refuzată.\n"
#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
msgstr "%s: `%s' este stăpânul NIS pentru acest client.\n"
#: src/chfn.c:382
-#, fuzzy, c-format
+#, c-format
msgid "%s: Permission denied.\n"
-msgstr "%s: permisiune refuzată\n"
+msgstr "%s: permisiune refuzată.\n"
#: src/chfn.c:446
#, c-format
"\n"
"Opţiuni:\n"
" -e, --encrypted\tparola furnizată este criptată\n"
-" -h, --help\t\tafişez acest mesaj de ajutor şi termin\n"
-" -m, --md5\t\tfolosesc criptarea MD5 în loc de DES când parola\n"
+" -h, --help\t\tafişare acest mesaj de ajutor şi ieşire\n"
+" -m, --md5\t\tutilizează criptarea MD5 în loc de DES atunci când parola\n"
"\t\t\tfurnizată nu este criptată\n"
#: src/chpasswd.c:189
"\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
"\t\t\t\tfor user with LOGIN\n"
msgstr ""
+"Utilizare: faillog [opţiuni]\n"
+"\n"
+"Opţiuni:\n"
+" -a, --all\t\t\tafişare înregistrările de jurnal pentru eşuări pentru toţi "
+"utilizatorii\n"
+" -h, --help\t\t\tafişare acest mesaj de ajutor şi ieşire\n"
+" -l, --lock-time SEC\t\tdupă eşuarea autentificării se închide contorul "
+"pentru SEC secunde\n"
+" -m, --maximum MAX\t\tsetează contorul maxim de autentificări eşuate la "
+"MAX\n"
+" -r, --reset\t\t\tresetează contoarele de autentificări eşuate\n"
+" -t, --time ZILE\t\tafişare înregistrările de jurnal pentru eşuări mai "
+"recente de ZILE\n"
+" -u, --user LOGIN\t\tafişare înregistrări de jurnal pentru eşuări sau "
+"menţine contoarele de eşuări\n"
+"\t\t\t\tşi doar le limitează (dacă este folosit cu opţiunile -r, -m sau -l)\n"
+"\t\t\t\tpentru utilizatorul cu LOGIN\n"
#: src/faillog.c:87
#, c-format
msgid "Login Failures Maximum Latest On\n"
msgstr ""
+"Autentificare Eşuări Maxim Cea mai recentă De "
+"la\n"
#: src/faillog.c:105
#, c-format
msgstr "Utilizator necunoscut: %s\n"
#: src/gpasswd.c:71
-#, fuzzy, c-format
+#, c-format
msgid "Usage: %s [-r|-R] group\n"
-msgstr "utilizare: %s [-r|-R] grup\n"
+msgstr "Utilizare: %s -r|-R] grup\n"
#: src/gpasswd.c:72
#, c-format
msgstr "%s: nu pot descuia fişierul\n"
#: src/groupadd.c:97
-#, fuzzy, c-format
+#, c-format
msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
-msgstr "utilizare: groupadd [-g id_grup [-o]] grup\n"
+msgstr "Utilizare: groupadd [-g id_grup [-o]] [-f] grup\n"
#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
msgstr "%s: nu pot prelua id unic de grup\n"
#: src/groupadd.c:280 src/groupmod.c:283
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s is not a valid group name\n"
msgstr "%s: %s nu este un nume de grup valid\n"
msgstr "%s: grupul %s există\n"
#: src/groupdel.c:83
-#, fuzzy, c-format
+#, c-format
msgid "Usage: groupdel group\n"
-msgstr "utilizare: groupdel grup\n"
+msgstr "Utilizare: groupdel grup\n"
#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
#, c-format
msgstr "%s: %s este stăpân NIS\n"
#: src/groupmod.c:98
-#, fuzzy, c-format
+#, c-format
msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
-msgstr "utilizare: groupmod [-g id_grup [-o]] [-n nume] grup\n"
+msgstr "Utilizare: groupmod [-g id_grup [-o]] [-n nume] grup\n"
#: src/groupmod.c:156
#, c-format
msgstr "%s: nu pot şterge fişierul de parole criptate de grupuri\n"
#: src/id.c:53
-#, fuzzy, c-format
+#, c-format
msgid "Usage: id [-a]\n"
-msgstr "utilizare: id [-a]\n"
+msgstr "Utilizare: id [-a]\n"
#: src/id.c:55
-#, fuzzy, c-format
+#, c-format
msgid "Usage: id\n"
-msgstr "utilizare: id\n"
+msgstr "Utilizare: id\n"
#: src/id.c:169
#, c-format
msgstr " grupuri="
#: src/lastlog.c:64
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
-"Utilizare: chpasswd [opţiuni]\n"
+"Utilizare: lastlog [opţiuni]\n"
"\n"
"Opţiuni:\n"
-" -e, --encrypted\tparola furnizată este criptată\n"
-" -h, --help\t\tafişez acest mesaj de ajutor şi termin\n"
-" -m, --md5\t\tfolosesc criptarea MD5 în loc de DES când parola\n"
-"\t\t\tfurnizată nu este criptată\n"
+" -u, --user LOGIN\tafişare ultima înregistrare de jurnal pentru "
+"utilizatorul cu LOGIN-ul specificat\n"
+" -h, --help\t\tafişare acest mesaj de ajutor şi ieşire\n"
+" -t, --time ZILE\tafişare doar ultimile înregistrari de jurnal mai recente "
+"decât ZILE\n"
#: src/lastlog.c:90
#, c-format
msgstr "**Niciodată autentificat**"
#: src/login.c:156
-#, fuzzy, c-format
+#, c-format
msgid "Usage: %s [-p] [name]\n"
-msgstr "utilizare: %s [-p] [nume]\n"
+msgstr "Utilizare: %s [-p] [nume]\n"
#: src/login.c:159
#, c-format
msgstr "%s: nu pot deschide fişierele DBM pentru %s\n"
#: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: începutul cu "
+msgstr "%s: linia care începe cu %.16s... este prea lungă\n"
#: src/mkpasswd.c:313
#, c-format
msgstr "%s: eroare la analiza liniei \"%s\"\n"
#: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
-#, fuzzy, c-format
+#, c-format
msgid "adding record for name %s\n"
-msgstr "adăugare înregistrare pentru nume "
+msgstr "adăugare înregistrare pentru nume %s\n"
#: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
-#, fuzzy, c-format
+#, c-format
msgid "%s: error adding record for %s\n"
-msgstr "%s: eroare la adăugare înregistrare pentru "
+msgstr "%s: eroare la adăugare înregistrare pentru %s\n"
#: src/mkpasswd.c:376
#, c-format
msgstr "Utilizare: %s [-vf] [-p|g] fişier\n"
#: src/newgrp.c:61
-#, fuzzy, c-format
+#, c-format
msgid "Usage: newgrp [-] [group]\n"
-msgstr "utilizare: newgrp [-] [grup]\n"
+msgstr "Utilizare: newgrp [-] [grup]\n"
#: src/newgrp.c:63
-#, fuzzy, c-format
+#, c-format
msgid "Usage: sg group [[-c] command]\n"
-msgstr "utilizare: sg grup [[-c] comanda]\n"
+msgstr "Utilizare: sg grup [[-c] comanda]\n"
#: src/newgrp.c:131
#, c-format
msgid "Sorry.\n"
msgstr "Scuze.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "prea multe grupuri\n"
msgstr "%s: eroare la actualizarea fişierelor\n"
#: src/passwd.c:154
-#, fuzzy, c-format
+#, c-format
msgid "Usage: %s [-f|-s] [name]\n"
-msgstr "utilizare: %s [-f|-s] [nume]\n"
+msgstr "Utilizare: %s [-f|-s] [nume]\n"
#: src/passwd.c:158
#, c-format
msgstr "%s: depozitul %s nu este suportat\n"
#: src/passwd.c:884
-#, fuzzy, c-format
+#, c-format
msgid "%s: You may not view or modify password information for %s.\n"
-msgstr "Nu puteţi schimba consola pentru %s.\n"
+msgstr ""
+"%s: Nu puteţi vizualiza sau modifica informaţiile despre parola lui %s.\n"
#: src/passwd.c:934
#, c-format
msgstr "%s: prea multe grupuri specificate (maximum %d).\n"
#: src/useradd.c:660
-#, fuzzy, c-format
+#, c-format
msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
-msgstr "utilizare: %s\t[-u id_utilizator [-o]] [-g grup] [-G grup,...] \n"
+msgstr "Utilizare: useradd [-u id_utilizator [-o]] [-g grup] [-G grup,...] \n"
#: src/useradd.c:663
-#, fuzzy, c-format
+#, c-format
msgid " [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
-msgstr "\t\t[-d acasă] [-s consolă] [-c comentariu] [-m [-k şablon]]\n"
+msgstr ""
+" [-d acasă] [-s consolă] [-c comentariu] [-m [-k şablon]]\n"
#: src/useradd.c:665 src/useradd.c:671
-#, fuzzy, c-format
+#, c-format
msgid " [-f inactive] [-e expire]\n"
-msgstr "\t\t[-f inactivă] [-e expiră ]\n"
+msgstr " [-f inactivă] [-e expiră ]\n"
#: src/useradd.c:667
-#, fuzzy, c-format
+#, c-format
msgid " [-p passwd] name\n"
-msgstr "[-p passwd] nume\n"
+msgstr " [-p passwd] nume\n"
#: src/useradd.c:669
-#, fuzzy, c-format
+#, c-format
msgid " useradd -D [-g group] [-b base] [-s shell]\n"
-msgstr " %s\t-D [-g grup] [-b base] [-s consolă]\n"
+msgstr " useradd -D [-g grup] [-b baza] [-s consolă]\n"
#: src/useradd.c:756 src/usermod.c:444
#, c-format
#, c-format
msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
msgstr ""
+"Nu există nici un grup cu numele de \"mail\", se crează directorul de poştă "
+"cu modul 0600.\n"
#: src/useradd.c:1446
-#, fuzzy, c-format
+#, c-format
msgid "Can't create mail spool for user %s.\n"
-msgstr "%s: nu pot actualiza intrarea pentru utilizatorul %s\n"
+msgstr "Nu pot crea directorul de poştă pentru utilizatorul %s.\n"
#: src/useradd.c:1550 src/usermod.c:919
#, c-format
msgstr "%s: avertisment: CREATE_HOME nu este suportat, vă rog folosiţi -m.\n"
#: src/userdel.c:108
-#, fuzzy, c-format
+#, c-format
msgid "Usage: %s [-r] name\n"
-msgstr "utilizare: %s [-r] nume\n"
+msgstr "Utilizare: %s [-r] nume\n"
#: src/userdel.c:160 src/userdel.c:221
#, c-format
msgstr "%s: eroare la ştergerea directorului %s\n"
#: src/usermod.c:289
-#, fuzzy, c-format
+#, c-format
msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
-msgstr "utilizare: %s\t[-u id_utilizator [-o]] [-g grup] [-G grup,...] \n"
+msgstr "Utilizare: %s\t[-u id_utilizator [-o]] [-g grup] [-G grup,...] \n"
#: src/usermod.c:293
#, c-format
msgstr "\t\t[-d acasă [-m]] [-s consolă] [-c comentariu] [-l nume_nou]\n"
#: src/usermod.c:296
-#, fuzzy, c-format
+#, c-format
msgid "[-f inactive] [-e expire] "
msgstr "[-f inactivă] [-e expiră ] "
+# translation of ru.po to Russian
+# translation of po_ru.po to Russian
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# Nikolai Prokoschenko <nikolai@prokoschenko.de>, 2004.
+# Eugene Konev <ejka@imfi.kspu.ru>, 2004.
+# Yuri Kozlov <yuray@id.ru>, 2004, 2005.
+#
msgid ""
msgstr ""
-"Project-Id-Version: shadow 3.0.3\n"
+"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
-"PO-Revision-Date: 2000-04-05 11:00:00+0200\n"
-"Last-Translator: Sergey Kubushin <ksi@ksi-linux.com>\n"
-"Language-Team: RU <ru@li.org>\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
+"PO-Revision-Date: 2005-05-13 20:56+0400\n"
+"Last-Translator: Yuri Kozlov <yuray@id.ru>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"X-Generator: KBabel 1.9.1\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: libmisc/addgrps.c:56
#, c-format
msgid "Warning: unknown group %s\n"
-msgstr "Ð\9fÑ\80едÑ\83пÑ\80еждение: неизвестная группа %s\n"
+msgstr "Ð\92нимание: неизвестная группа %s\n"
#: libmisc/addgrps.c:67
#, c-format
msgid "Warning: too many groups\n"
-msgstr "Ð\9fÑ\80едÑ\83пÑ\80еждение: слишком много групп\n"
+msgstr "Ð\92нимание: слишком много групп\n"
#: libmisc/age.c:72
#, c-format
msgid "Your password has expired."
-msgstr "Срок действия вашего пароля истек."
+msgstr "Срок действия вашего пароля истёк."
#: libmisc/age.c:75
#, c-format
msgid "Your password is inactive."
-msgstr "Ð\92аÑ\88 паÑ\80олÑ\8c неакÑ\82ивен."
+msgstr "Ð\94ейÑ\81Ñ\82вие ваÑ\88его паÑ\80олÑ\8f вÑ\80еменно пÑ\80иоÑ\81Ñ\82ановлено."
#: libmisc/age.c:78
#, c-format
msgid "Your login has expired."
-msgstr "СÑ\80ок дейÑ\81Ñ\82виÑ\8f ваÑ\88его логина иÑ\81Ñ\82ек."
+msgstr "СÑ\80ок дейÑ\81Ñ\82виÑ\8f ваÑ\88ей Ñ\83Ñ\87Ñ\91Ñ\82ной запиÑ\81и иÑ\81Ñ\82Ñ\91к."
#: libmisc/age.c:90
msgid " Contact the system administrator.\n"
-msgstr " СвÑ\8fжиÑ\82еÑ\81Ñ\8c Ñ\81 Ñ\81иÑ\81Ñ\82емнÑ\8bм админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80ом.\n"
+msgstr " Ð\9eбÑ\80аÑ\82иÑ\82еÑ\81Ñ\8c к Ñ\81иÑ\81Ñ\82емномÑ\83 админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\83.\n"
#: libmisc/age.c:93
msgid " Choose a new password.\n"
-msgstr " Выберите новый пароль.\n"
+msgstr " Ð\92Ñ\8bбеÑ\80иÑ\82е и введиÑ\82е новÑ\8bй паÑ\80олÑ\8c.\n"
#: libmisc/age.c:169
#, c-format
msgid "Your password will expire in %ld days.\n"
-msgstr "Срок действия вашего пароля истечет через %ld дней.\n"
+msgstr "Срок действия вашего пароля истекает через %ld дней.\n"
#: libmisc/age.c:172
#, c-format
msgid "Your password will expire tomorrow.\n"
-msgstr "СÑ\80ок дейÑ\81Ñ\82виÑ\8f ваÑ\88его паÑ\80олÑ\8f заканÑ\87иваеÑ\82Ñ\81Ñ\8f завтра.\n"
+msgstr "СÑ\80ок дейÑ\81Ñ\82виÑ\8f ваÑ\88его паÑ\80олÑ\8f иÑ\81Ñ\82екаеÑ\82 завтра.\n"
#: libmisc/age.c:174
#, c-format
msgid "Your password will expire today.\n"
-msgstr "СÑ\80ок дейÑ\81Ñ\82виÑ\8f ваÑ\88его паÑ\80олÑ\8f заканÑ\87иваеÑ\82Ñ\81Ñ\8f сегодня.\n"
+msgstr "СÑ\80ок дейÑ\81Ñ\82виÑ\8f ваÑ\88его паÑ\80олÑ\8f иÑ\81Ñ\82екаеÑ\82 сегодня.\n"
#: libmisc/chowntty.c:106
#, c-format
msgid "Unable to change tty %s"
-msgstr "Не могу поменять tty %s"
+msgstr "Не удалось сменить владельца терминала %s"
#: libmisc/env.c:155
#, c-format
msgid "Environment overflow\n"
-msgstr "Переполнение окружения\n"
+msgstr "Cлишком большое количество переменных среды выполнения\n"
#: libmisc/env.c:194
#, c-format
msgstr "Вы не можете изменить $%s\n"
#: libmisc/failure.c:229
-#, fuzzy, c-format
+#, c-format
msgid ""
"%d failure since last login.\n"
"Last was %s on %s.\n"
msgid_plural ""
"%d failures since last login.\n"
"Last was %s on %s.\n"
-msgstr[0] "%d %s с последнего логина, который был %s на %s.\n"
-msgstr[1] "%d %s с последнего логина, который был %s на %s.\n"
-msgstr[2] "%d %s с последнего логина, который был %s на %s.\n"
+msgstr[0] ""
+"%d неудачная попытка входа в систему.\n"
+"Последняя была %s на %s.\n"
+msgstr[1] ""
+"%d неудачных попыток входа в систему.\n"
+"Последняя была %s на %s.\n"
+msgstr[2] "%d неудачных попыток входа в систему. Последняя была %s на %s.\n"
#: libmisc/limits.c:397
#, c-format
msgid "Too many logins.\n"
-msgstr "СлиÑ\88ком много логинов.\n"
+msgstr "СлиÑ\88ком много попÑ\8bÑ\82ок вÑ\85ода в Ñ\81иÑ\81Ñ\82емÑ\83.\n"
#: libmisc/mail.c:61 libmisc/mail.c:76
msgid "You have new mail."
-msgstr "Ð\94лÑ\8f вас есть новая почта."
+msgstr "У вас есть новая почта."
#: libmisc/mail.c:72
msgid "No mail."
-msgstr "Ð\9fоÑ\87Ñ\82Ñ\8b неÑ\82."
+msgstr "У ваÑ\81 неÑ\82 поÑ\87Ñ\82Ñ\8b."
#: libmisc/mail.c:74
msgid "You have mail."
-msgstr "Ð\94лÑ\8f вас есть почта."
+msgstr "У вас есть почта."
#: libmisc/obscure.c:273 src/passwd.c:181
#, c-format
#: libmisc/pam_pass.c:38
#, c-format
msgid "passwd: pam_start() failed, error %d\n"
-msgstr "passwd: неÑ\83даÑ\87а pam_start(), оÑ\88ибка %d\n"
+msgstr "passwd: оÑ\88ибка %d в pam_start()\n"
#: libmisc/pam_pass.c:44
#, c-format
#: libmisc/pam_pass.c:49
msgid "passwd: password updated successfully\n"
-msgstr ""
+msgstr "passwd: пароль успешно обновлён\n"
#: libmisc/setupenv.c:207
#, c-format
msgid "Unable to cd to \"%s\"\n"
-msgstr "Не могу перейти в \"%s\"\n"
+msgstr "Невозможно перейти в каталог \"%s\"\n"
#: libmisc/setupenv.c:215
msgid "No directory, logging in with HOME=/"
-msgstr "Нет каталога, логинимся с HOME=/"
+msgstr ""
+"Каталог отсутствует или недоступен, вход в систему выполняется с HOME=/"
#: libmisc/shell.c:118
#, c-format
msgid "Cannot execute %s"
-msgstr "Не могу исполнить %s"
+msgstr "Не удалось выполнить %s"
#: libmisc/sub.c:55
#, c-format
#: libmisc/sub.c:67
#, c-format
msgid "Can't change root directory to \"%s\"\n"
-msgstr "Не могу изменить корневой каталог на \"%s\"\n"
+msgstr "Не удалось изменить корневой каталог на \"%s\"\n"
#: libmisc/xmalloc.c:22
#, c-format
msgid "malloc(%d) failed\n"
-msgstr "неудача malloc(%d)\n"
+msgstr "не удалось выделить %d байт памяти\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
-msgstr "Нет места для информации о конфигурации.\n"
+msgstr "Не удалось выделить память для загрузки конфигурации.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
-"оÑ\88ибка конÑ\84игÑ\83Ñ\80аÑ\86ии - неизвеÑ\81Ñ\82наÑ\8f запиÑ\81Ñ\8c '%s' (сообщите администратору)\n"
+"Ð\9eÑ\88ибка конÑ\84игÑ\83Ñ\80аÑ\86ии: неизвеÑ\81Ñ\82нÑ\8bй Ñ\8dлеменÑ\82 '%s' (сообщите администратору)\n"
#: lib/pwauth.c:45 src/newgrp.c:341
msgid "Password: "
#: lib/pwauth.c:47
#, c-format
msgid "%s's Password: "
-msgstr "Пароль %s: "
+msgstr "Пароль пользователя %s: "
#: src/chage.c:112
#, c-format
"Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
" [-I inactive] [-E expire] [-d last_day] user\n"
msgstr ""
-"Запуск: chage [-l] [-m мин_дней] [-M макс_дней] [-W предупр.]\n"
-" [-I неактивн.] [-E дата окончания] [-d посл_день] юзер\n"
+"Использование: chage [-l] [-m минимальный срок действия пароля (дней)]\n"
+" [-M максимальный срок действия пароля (дней)]\n"
+" [-W предупреждать за (дней)]\n"
+" [-I деактивировать учётную запись через (дней)]\n"
+" [-E отключить учётную запись (дата)]\n"
+" [-d дата последнего изменения пароля] имя пользователя\n"
#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
-#, fuzzy, c-format
+#, c-format
msgid "Enter the new value, or press ENTER for the default\n"
-msgstr "Введите новое значение или return для значения по умолчанию\n"
+msgstr ""
+"Введите новое значение или нажмите ВВОД для выбора значения по умолчанию\n"
#: src/chage.c:149
msgid "Minimum Password Age"
-msgstr "Минимальный \"возраст\" пароля"
+msgstr "Минимальный срок действия пароля (дней)"
#: src/chage.c:155
msgid "Maximum Password Age"
-msgstr "Максимальный \"возраст\" пароля"
+msgstr "Максимальный срок действия пароля (дней)"
#: src/chage.c:162
msgid "Last Password Change (YYYY-MM-DD)"
-msgstr "Ð\9fоÑ\81леднее изменение паÑ\80олÑ\8f (ГГГГ-ММ-ДД)"
+msgstr "Ð\9fоÑ\81ледний Ñ\80аз паÑ\80олÑ\8c бÑ\8bл изменÑ\91н (ГГГГ-ММ-ДД)"
#: src/chage.c:170
msgid "Password Expiration Warning"
-msgstr "Ð\9fÑ\80едÑ\83пÑ\80еждениÑ\8f об оконÑ\87ании Ñ\81Ñ\80ока дейÑ\81Ñ\82виÑ\8f паÑ\80олÑ\8f"
+msgstr "Ð\9fÑ\80едÑ\83пÑ\80еждаÑ\82Ñ\8c об иÑ\81Ñ\82еÑ\87ении Ñ\81Ñ\80ока дейÑ\81Ñ\82виÑ\8f паÑ\80олÑ\8f за (дней)"
#: src/chage.c:176
msgid "Password Inactive"
-msgstr "Ð\9fаÑ\80олÑ\8c неакÑ\82ивен"
+msgstr "Ð\94еакÑ\82ивиÑ\80оваÑ\82Ñ\8c Ñ\83Ñ\87Ñ\91Ñ\82нÑ\83Ñ\8e запиÑ\81Ñ\8c Ñ\87еÑ\80ез (дней)"
#: src/chage.c:184
msgid "Account Expiration Date (YYYY-MM-DD)"
-msgstr "Ð\94аÑ\82а оконÑ\87аниÑ\8f Ñ\81Ñ\80ока дейÑ\81Ñ\82виÑ\8f аккаÑ\83нÑ\82а (ГГГГ-ММ-ДД)"
+msgstr "Ð\94аÑ\82а иÑ\81Ñ\82еÑ\87ениÑ\8f Ñ\81Ñ\80ока дейÑ\81Ñ\82виÑ\8f Ñ\83Ñ\87Ñ\91Ñ\82ной запиÑ\81и (ГГГГ-ММ-ДД)"
#: src/chage.c:231
-#, fuzzy, c-format
+#, c-format
msgid "Last password change\t\t\t\t\t: "
-msgstr "Ð\9fоÑ\81леднее изменение паÑ\80олÑ\8f (Ð\93Ð\93Ð\93Ð\93-Ð\9cÐ\9c-Ð\94Ð\94)"
+msgstr "Ð\9fоÑ\81ледний Ñ\80аз паÑ\80олÑ\8c бÑ\8bл изменÑ\91н\t\t\t\t\t: "
#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
-#, fuzzy, c-format
+#, c-format
msgid "never\n"
-msgstr "Ð\9dикогда\n"
+msgstr "никогда\n"
#: src/chage.c:244
-#, fuzzy, c-format
+#, c-format
msgid "Password expires\t\t\t\t\t: "
-msgstr "Ð\9fаÑ\80олÑ\8c иÑ\81Ñ\82екаеÑ\82:\t"
+msgstr "СÑ\80ок дейÑ\81Ñ\82виÑ\8f паÑ\80олÑ\8f иÑ\81Ñ\82екаеÑ\82\t\t\t\t\t: "
#: src/chage.c:260
-#, fuzzy, c-format
+#, c-format
msgid "Password inactive\t\t\t\t\t: "
-msgstr "Ð\9fаÑ\80олÑ\8c дезакÑ\82ивиÑ\80Ñ\83еÑ\82Ñ\81Ñ\8f:\t"
+msgstr "Ð\9fаÑ\80олÑ\8c бÑ\83деÑ\82 деакÑ\82ивиÑ\80ован Ñ\87еÑ\80ез (дней)\t\t\t\t\t: "
#: src/chage.c:274
-#, fuzzy, c-format
+#, c-format
msgid "Account expires\t\t\t\t\t\t: "
-msgstr "Ð\90ккаÑ\83нÑ\82 иÑ\81Ñ\82екаеÑ\82:\t"
+msgstr "СÑ\80ок дейÑ\81Ñ\82виÑ\8f Ñ\83Ñ\87Ñ\91Ñ\82ной запиÑ\81и иÑ\81Ñ\82екаеÑ\82\t\t\t\t\t\t: "
#: src/chage.c:290
#, c-format
msgid "Minimum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Минимальное количество дней между сменой пароля\t\t: %ld\n"
#: src/chage.c:292
#, c-format
msgid "Maximum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Максимальное количество дней между сменой пароля\t\t: %ld\n"
#: src/chage.c:294
#, c-format
msgid "Number of days of warning before password expires\t: %ld\n"
msgstr ""
+"Количество дней с предупреждением перед деактивированием пароля\t: %ld\n"
#: src/chage.c:431
#, c-format
msgid "%s: do not include \"l\" with other flags\n"
-msgstr "%s: не вклÑ\8eÑ\87айÑ\82е \"l\" Ñ\81 дÑ\80Ñ\83гими опÑ\86иÑ\8fми\n"
+msgstr "%s: не иÑ\81полÑ\8cзÑ\83йÑ\82е \"l\" Ñ\81овмеÑ\81Ñ\82но Ñ\81 дÑ\80Ñ\83гими клÑ\8eÑ\87ами\n"
#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
-#, fuzzy, c-format
+#, c-format
msgid "%s: permission denied.\n"
-msgstr "%s: доступ запрещен\n"
+msgstr "%s: доступ запрещён.\n"
#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
-#, fuzzy, c-format
+#, c-format
msgid "%s: PAM authentication failed\n"
-msgstr "%s: оÑ\88ибка добавлениÑ\8f меÑ\82ода аÑ\83Ñ\82енÑ\82икаÑ\86ии\n"
+msgstr "%s: пÑ\80овеÑ\80ка подлинноÑ\81Ñ\82и PAM завеÑ\80Ñ\88илаÑ\81Ñ\8c неÑ\83даÑ\87но\n"
#: src/chage.c:494 src/chpasswd.c:193
#, c-format
msgid "%s: can't open password file\n"
-msgstr "%s: не могу открыть файл паролей\n"
+msgstr "%s: не удалось открыть файл паролей\n"
#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
msgstr "%s: неизвестный пользователь %s\n"
#: src/chage.c:519
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't lock shadow password file"
-msgstr "%s: не могу заблокировать shadow-файл паролей\n"
+msgstr "%s: не удалось заблокировать теневой файл паролей"
#: src/chage.c:527
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't open shadow password file"
-msgstr "%s: не могу открыть shadow-файл паролей\n"
+msgstr "%s: не удалось открыть теневой файл паролей"
#: src/chage.c:587
#, c-format
msgid "Changing the aging information for %s\n"
-msgstr "Изменяем параметры времени действия для %s\n"
+msgstr "Изменение информации о сроках действия для %s\n"
#: src/chage.c:589
#, c-format
msgid "%s: error changing fields\n"
-msgstr "%s: оÑ\88ибка изменениÑ\8f полей\n"
+msgstr "%s: оÑ\88ибка пÑ\80и изменении полей\n"
#: src/chage.c:613 src/pwunconv.c:137
#, c-format
msgid "%s: can't update password file\n"
-msgstr "%s: не могу обновить файл паролей\n"
+msgstr "%s: не удалось обновить файл паролей\n"
#: src/chage.c:636 src/pwunconv.c:132
#, c-format
msgid "%s: can't update shadow password file\n"
-msgstr "%s: не могу обновить shadow-файл паролей\n"
+msgstr "%s: не удалось обновить теневой файл паролей\n"
#: src/chage.c:649
#, c-format
msgid "%s: can't rewrite shadow password file\n"
-msgstr "%s: не могу переписать shadow-файл паролей\n"
+msgstr "%s: не удалось перезаписать теневой файл паролей\n"
#: src/chage.c:693
#, c-format
msgid "%s: can't rewrite password file\n"
-msgstr "%s: не могу переписать файл паролей\n"
+msgstr "%s: не удалось перезаписать файл паролей\n"
#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
-#, fuzzy, c-format
+#, c-format
msgid "%s: PAM chauthtok failed\n"
-msgstr "%s: не могÑ\83 Ñ\80азблокиÑ\80оваÑ\82Ñ\8c Ñ\84айл\n"
+msgstr "%s: пÑ\80овеÑ\80ка подлинноÑ\81Ñ\82и (chauthtok) PAM завеÑ\80Ñ\88илаÑ\81Ñ\8c неÑ\83даÑ\87но\n"
#: src/chfn.c:84
#, c-format
"Usage: %s [-f full_name] [-r room_no] [-w work_ph]\n"
"\t[-h home_ph] [-o other] [user]\n"
msgstr ""
-"Ð\97апÑ\83Ñ\81к: %s [-f полное_имÑ\8f] [-r комнаÑ\82а] [-w Ñ\80аб_Ñ\82ел]\n"
-"\t[-h дом_тел] [-o прочее] [пользователь]\n"
+"Ð\98Ñ\81полÑ\8cзование: %s [-f полное имÑ\8f] [-r номеÑ\80 комнаÑ\82Ñ\8b] [-w Ñ\80абоÑ\87ий Ñ\82елеÑ\84он]\n"
+"\t[-h домашний телефон] [-o другое] [имя пользователя]\n"
#: src/chfn.c:89
#, c-format
msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
-msgstr "Запуск: %s [-f полное_имя] [-r комната] [-w раб_тел] [-h дом_тел]\n"
+msgstr ""
+"Использование: %s [-f полное имя] [-r номер комнаты] [-w рабочий телефон] [-"
+"h домашний телефон]\n"
#: src/chfn.c:142
msgid "Full Name"
#: src/chfn.c:157 src/chfn.c:159
msgid "Home Phone"
-msgstr "Дом. телефон"
+msgstr "Домашний телефон"
#: src/chfn.c:162
msgid "Other"
-msgstr "Ð\9fÑ\80оÑ\87ее"
+msgstr "Ð\94Ñ\80Ñ\83гое"
#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
#, c-format
msgid "%s: Cannot determine your user name.\n"
-msgstr "%s: Не могу определить вашего имени пользователя.\n"
+msgstr "%s: Не удалось определить имя пользователя.\n"
#: src/chfn.c:350 src/chsh.c:206
#, c-format
msgid "%s: cannot change user `%s' on NIS client.\n"
-msgstr "%s: не могу изменить пользователя `%s' на клиенте NIS.\n"
+msgstr "%s: невозможно изменить пользователя `%s' на клиенте NIS.\n"
#: src/chfn.c:357 src/chsh.c:213
#, c-format
msgid "%s: `%s' is the NIS master for this client.\n"
-msgstr "%s: `%s' - NIS-мастер для этого клиента.\n"
+msgstr "%s: `%s' -- сервер NIS для этого клиента.\n"
#: src/chfn.c:382
-#, fuzzy, c-format
+#, c-format
msgid "%s: Permission denied.\n"
-msgstr "%s: доÑ\81Ñ\82Ñ\83п запÑ\80еÑ\89ен\n"
+msgstr "%s: Ð\94оÑ\81Ñ\82Ñ\83п запÑ\80еÑ\89Ñ\91н.\n"
#: src/chfn.c:446
#, c-format
msgid "Changing the user information for %s\n"
-msgstr "Изменяем информацию о пользователе %s\n"
+msgstr "Изменение информации о пользователе %s\n"
#: src/chfn.c:454
#, c-format
#: src/chfn.c:471
#, c-format
msgid "%s: invalid home phone: \"%s\"\n"
-msgstr "%s: неверный дом. телефон: \"%s\"\n"
+msgstr "%s: неверный домашний телефон: \"%s\"\n"
#: src/chfn.c:478
#, c-format
#: src/chfn.c:491
#, c-format
msgid "%s: fields too long\n"
-msgstr "%s: слишком длинные поля\n"
+msgstr "%s: поля слишком длинны\n"
#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
#, c-format
msgid "Cannot change ID to root.\n"
-msgstr "Не могу изменить ID root'а.\n"
+msgstr "Не удалось получить права суперпользователя.\n"
#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
#, c-format
msgid "Cannot lock the password file; try again later.\n"
-msgstr "Не могу заблокировать файл паролей; попробуйте позже.\n"
+msgstr "Не удалось заблокировать файл паролей, попробуйте позже.\n"
#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
#, c-format
msgid "Cannot open the password file.\n"
-msgstr "Не могу открыть файл паролей.\n"
+msgstr "Не удалось открыть файл паролей.\n"
#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
#, c-format
#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
#, c-format
msgid "Error updating the password entry.\n"
-msgstr "Ð\9eÑ\88ибка обновлениÑ\8f запиÑ\81и паÑ\80олÑ\8f.\n"
+msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c обновиÑ\82Ñ\8c запиÑ\81Ñ\8c в Ñ\84айле паÑ\80олей.\n"
#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
#, c-format
msgid "Cannot commit password file changes.\n"
-msgstr "Не могу записать изменения файла паролей.\n"
+msgstr "Не удалось сохранить изменения в файле паролей.\n"
#: src/chfn.c:578 src/chsh.c:394
#, c-format
msgid "Cannot unlock the password file.\n"
-msgstr "Не могу разблокировать файл паролей.\n"
+msgstr "Не удалось разблокировать файл паролей.\n"
#: src/chpasswd.c:71
#, c-format
" -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
"\t\t\tpasswords are not encrypted\n"
msgstr ""
+"Использование: chpasswd [параметры]\n"
+"\n"
+"Параметры:\n"
+" -e, --encrypted\tвводится уже шифрованный пароль\n"
+" -h, --help\t\tпоказать это сообщение и завершить работу программы\n"
+" -m, --md5\t\tиспользовать шифрование MD5 вместо DES, если пароль\n"
+"\t\t\tвводится не шифрованным\n"
#: src/chpasswd.c:189
#, c-format
msgid "%s: can't lock password file\n"
-msgstr "%s: не могу заблокировать файл паролей\n"
+msgstr "%s: не удалось заблокировать файл паролей\n"
#: src/chpasswd.c:201 src/pwconv.c:95
#, c-format
msgid "%s: can't lock shadow file\n"
-msgstr "%s: не могу заблокировать файл shadow\n"
+msgstr "%s: не удалось заблокировать теневой файл паролей\n"
#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
#: src/pwunconv.c:94
#, c-format
msgid "%s: can't open shadow file\n"
-msgstr "%s: не могу открыть файл shadow\n"
+msgstr "%s: не удалось открыть теневой файл паролей\n"
#: src/chpasswd.c:230 src/newusers.c:434
#, c-format
#: src/chpasswd.c:250
#, c-format
msgid "%s: line %d: missing new password\n"
-msgstr "%s: Ñ\81Ñ\82Ñ\80ока %d: новÑ\8bй паÑ\80олÑ\8c оÑ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83еÑ\82\n"
+msgstr "%s: Ñ\81Ñ\82Ñ\80ока %d: оÑ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83еÑ\82 новÑ\8bй паÑ\80олÑ\8c\n"
#: src/chpasswd.c:274
#, c-format
#: src/chpasswd.c:320
#, c-format
msgid "%s: line %d: cannot update password entry\n"
-msgstr "%s: строка %d: не могу обновить запись пароля\n"
+msgstr "%s: строка %d: не удалось обновить поле пароля\n"
#: src/chpasswd.c:337 src/newusers.c:561
#, c-format
msgid "%s: error detected, changes ignored\n"
-msgstr "%s: обнаÑ\80Ñ\83жена оÑ\88ибка, изменениÑ\8f игноÑ\80иÑ\80Ñ\83Ñ\8eÑ\82Ñ\81Ñ\8f\n"
+msgstr "%s: обнаÑ\80Ñ\83жена оÑ\88ибка, изменениÑ\8f не бÑ\8bли Ñ\81оÑ\85Ñ\80аненÑ\8b\n"
#: src/chpasswd.c:349
#, c-format
msgid "%s: error updating shadow file\n"
-msgstr "%s: оÑ\88ибка обновлениÑ\8f Ñ\84айла shadow\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c обновиÑ\82Ñ\8c Ñ\82еневой Ñ\84айл паÑ\80олей\n"
#: src/chpasswd.c:357
#, c-format
msgid "%s: error updating password file\n"
-msgstr "%s: оÑ\88ибка обновлениÑ\8f Ñ\84айла паролей\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c обновиÑ\82Ñ\8c Ñ\84айл паролей\n"
#: src/chsh.c:76
#, c-format
msgid "Usage: %s [-s shell] [name]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-s Ñ\88елл] [имя]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-s команднаÑ\8f оболоÑ\87ка] [имÑ\8f полÑ\8cзоваÑ\82еля]\n"
#: src/chsh.c:90
msgid "Login Shell"
-msgstr "Шелл пÑ\80и вÑ\85оде"
+msgstr "Ð\9aоманднаÑ\8f оболоÑ\87ка"
#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
#, c-format
msgid "You may not change the shell for %s.\n"
-msgstr "Вы не можете изменить шелл для %s.\n"
+msgstr "Вы не можете изменять командную оболочку для %s.\n"
#: src/chsh.c:288
#, c-format
msgid "Changing the login shell for %s\n"
-msgstr "Изменяем шелл при входе для %s\n"
+msgstr "Изменение командной оболочки для %s\n"
#: src/chsh.c:300
#, c-format
msgid "%s: Invalid entry: %s\n"
-msgstr "%s: Ð\9dевеÑ\80наÑ\8f запиÑ\81Ñ\8c: %s\n"
+msgstr "%s: Ð\9dевеÑ\80ное знаÑ\87ение: %s\n"
#: src/chsh.c:305
#, c-format
msgid "%s is an invalid shell.\n"
-msgstr "%s - неверный шелл.\n"
+msgstr "%s не является командной оболочкой.\n"
#: src/expiry.c:59
#, c-format
msgid "Usage: expiry {-f|-c}\n"
-msgstr "Ð\97апÑ\83Ñ\81к: expiry {-f|-c}\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: expiry {-f|-c}\n"
#: src/expiry.c:112
#, c-format
msgid "%s: WARNING! Must be set-UID root!\n"
-msgstr "%s: ПРЕДУПРЕЖДЕНИЕ! Должно быть set-UID root!\n"
+msgstr ""
+"%s: ВНИМАНИЕ! Исполняемый файл программы должен быть с установленным битом "
+"set-UID!\n"
#: src/expiry.c:122
#, c-format
"\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
"\t\t\t\tfor user with LOGIN\n"
msgstr ""
+"Использование: faillog [параметры]\n"
+"\n"
+"Параметры:\n"
+" -a, --all\t\t\tпоказать записи faillog обо всех пользователях\n"
+" -h, --help\t\t\tпоказать это сообщение и завершить работу программы\n"
+" -l, --lock-time SEC\t\tпри неудачной попытке входа блокировать\n"
+"\t\t\t\tучётную запись на SEC секунд\n"
+" -m, --maximum MAX\t\tустановить максимальное число неудачных попыток\n"
+"\t\t\t\tвхода равным MAX\n"
+" -r, --reset\t\t\tобнулить счётчики неудачных попыток входа\n"
+" -t, --time DAYS\t\tпоказать записи faillog за последние DAYS дней\n"
+" -u, --user LOGIN\t\tпоказать запись faillog или настроить счётчики\n"
+"\t\t\t\tнеудачных попыток и ограничения (с помощью -r, -m или -l) только\n"
+"\t\t\t\tдля учётной записи LOGIN\n"
#: src/faillog.c:87
#, c-format
msgid "Login Failures Maximum Latest On\n"
-msgstr ""
+msgstr "Уч.запись Неуд. попыток Максимум Последний раз\n"
#: src/faillog.c:105
#, c-format
msgid " [%lds left]"
-msgstr " [%lds ост.]"
+msgstr " [%lds осталось]"
#: src/faillog.c:109
#, c-format
msgid " [%lds lock]"
-msgstr " [%lds lock]"
+msgstr " [%lds блокировок]"
#: src/faillog.c:353 src/lastlog.c:187
#, c-format
#: src/gpasswd.c:71
#, c-format
msgid "Usage: %s [-r|-R] group\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-r|-R] группа\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-r|-R] группа\n"
#: src/gpasswd.c:72
#, c-format
msgid " %s [-a user] group\n"
-msgstr " %s [-a юзер] группа\n"
+msgstr " %s [-a имя пользователя] группа\n"
#: src/gpasswd.c:73
#, c-format
msgid " %s [-d user] group\n"
-msgstr " %s [-d юзер] группа\n"
+msgstr " %s [-d имя пользователя] группа\n"
#: src/gpasswd.c:76
#, c-format
msgid " %s [-A user,...] [-M user,...] group\n"
-msgstr " %s [-A юзер,...] [-M юзер,...] группа\n"
+msgstr ""
+" %s [-A имя пользователя,...] [-M имя пользователя,...] "
+"группа\n"
#: src/gpasswd.c:78
#, c-format
msgid " %s [-M user,...] group\n"
-msgstr " %s [-M юзер,...] группа\n"
+msgstr " %s [-M имя пользователя,...] группа\n"
#: src/gpasswd.c:229
#, c-format
msgid "%s: shadow group passwords required for -A\n"
-msgstr "%s: для -A требуются shadow-пароли групп\n"
+msgstr "%s: для -A требуется поддержка теневого файла групп\n"
#: src/gpasswd.c:280
#, c-format
msgid "Who are you?\n"
-msgstr "Ð\9aÑ\82о вÑ\8b?\n"
+msgstr "Ð\92Ñ\8b кÑ\82о?\n"
#: src/gpasswd.c:299 src/newgrp.c:290
#, c-format
#: src/gpasswd.c:408
#, c-format
msgid "Adding user %s to group %s\n"
-msgstr "Добавляю пользователя %s в группу %s\n"
+msgstr "Добавление пользователя %s в группу %s\n"
#: src/gpasswd.c:426
#, c-format
msgid "Removing user %s from group %s\n"
-msgstr "Удаляю пользователя %s из группы %s\n"
+msgstr "Удаление пользователя %s из группы %s\n"
#: src/gpasswd.c:439
#, c-format
msgid "%s: unknown member %s\n"
-msgstr "%s: неизвестный член %s\n"
+msgstr "%s: неизвестный член группы %s\n"
#: src/gpasswd.c:485
#, c-format
#: src/gpasswd.c:506
#, c-format
msgid "Changing the password for group %s\n"
-msgstr "Изменяем пароль для группы %s\n"
+msgstr "Изменение пароля для группы %s\n"
#: src/gpasswd.c:509
msgid "New Password: "
#: src/gpasswd.c:514 src/passwd.c:278
msgid "Re-enter new password: "
-msgstr "Ð\95Ñ\89е Ñ\80аз новый пароль: "
+msgstr "Ð\9fовÑ\82оÑ\80иÑ\82е новый пароль: "
#: src/gpasswd.c:526
msgid "They don't match; try again"
-msgstr "Ð\9eни не Ñ\81овпадаÑ\8eÑ\82; попÑ\80обÑ\83йÑ\82е Ñ\81нова"
+msgstr "Ð\9fаÑ\80оли не Ñ\81овпадаÑ\8eÑ\82, попÑ\80обÑ\83йÑ\82е еÑ\89Ñ\91 Ñ\80аз"
#: src/gpasswd.c:530
#, c-format
#: src/gpasswd.c:562
#, c-format
msgid "%s: can't get lock\n"
-msgstr "%s: не могу заблокировать\n"
+msgstr "%s: не удалось осуществить блокировку\n"
#: src/gpasswd.c:568
#, c-format
msgid "%s: can't get shadow lock\n"
-msgstr "%s: не могу заблокировать shadow\n"
+msgstr "%s: не удалось осуществить файла shadow\n"
#: src/gpasswd.c:574
#, c-format
msgid "%s: can't open file\n"
-msgstr "%s: не могу открыть файл\n"
+msgstr "%s: не удалось открыть файл\n"
#: src/gpasswd.c:586
#, c-format
msgid "%s: can't update entry\n"
-msgstr "%s: не могу обновить запись\n"
+msgstr "%s: не удалось обновить файл\n"
#: src/gpasswd.c:592
#, c-format
msgid "%s: can't update shadow entry\n"
-msgstr "%s: не могу обновить shadow-запись\n"
+msgstr "%s: не удалось обновить shadow\n"
#: src/gpasswd.c:598
#, c-format
msgid "%s: can't re-write file\n"
-msgstr "%s: не могу переписать файл\n"
+msgstr "%s: не удалось перезаписать файл\n"
#: src/gpasswd.c:604
#, c-format
msgid "%s: can't re-write shadow file\n"
-msgstr "%s: не могу переписать файл shadow\n"
+msgstr "%s: не удалось перезаписать файл shadow\n"
#: src/gpasswd.c:612
#, c-format
msgid "%s: can't unlock file\n"
-msgstr "%s: не могу разблокировать файл\n"
+msgstr "%s: не удалось разблокировать файл\n"
#: src/groupadd.c:97
#, c-format
msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
-msgstr "Ð\97апÑ\83Ñ\81к: groupadd [-g gid [-o]] [-f] группа\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: groupadd [-g gid [-o]] группа\n"
#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
#, c-format
msgid "%s: error adding new group entry\n"
-msgstr "%s: оÑ\88ибка добавлениÑ\8f новой запиÑ\81и гÑ\80Ñ\83ппÑ\8b\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c добавиÑ\82Ñ\8c новÑ\83Ñ\8e гÑ\80Ñ\83ппÑ\83\n"
#: src/groupadd.c:219 src/useradd.c:904
#, c-format
msgid "%s: name %s is not unique\n"
-msgstr "%s: имя %s не уникально\n"
+msgstr "%s: имя %s уже существует\n"
#: src/groupadd.c:234
-#, fuzzy, c-format
+#, c-format
msgid "%s: gid %u is not unique\n"
-msgstr "%s: gid %ld не уникален\n"
+msgstr "%s: gid %u уже существует\n"
#: src/groupadd.c:258
#, c-format
msgid "%s: can't get unique gid\n"
-msgstr "%s: не могу получить уникальный gid\n"
+msgstr "%s: не удалось найти уникальный gid\n"
#: src/groupadd.c:280 src/groupmod.c:283
#, c-format
msgid "%s: %s is not a valid group name\n"
-msgstr "%s: %s недопустимо как имя группы\n"
+msgstr "%s: %s не может быть именем группы\n"
#: src/groupadd.c:309 src/groupmod.c:308
#, c-format
#: src/groupadd.c:326 src/useradd.c:1099
#, c-format
msgid "%s: -O requires NAME=VALUE\n"
-msgstr "%s: -O требует ИМЯ=ЗНАЧЕНИЕ\n"
+msgstr "%s: для -O необходимо ИМЯ=ЗНАЧЕНИЕ\n"
#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
#: src/userdel.c:245 src/usermod.c:522
#, c-format
msgid "%s: cannot rewrite group file\n"
-msgstr "%s: не могу переписать файл групп\n"
+msgstr "%s: не удалось переписать файл групп\n"
#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
#: src/userdel.c:251 src/usermod.c:645
#, c-format
msgid "%s: cannot rewrite shadow group file\n"
-msgstr "%s: не могу переписать shadow-файл групп\n"
+msgstr "%s: не удалось переписать теневой файл групп\n"
#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
#, c-format
msgid "%s: unable to lock group file\n"
-msgstr "%s: не могу заблокировать файл групп\n"
+msgstr "%s: не удалось заблокировать файл групп\n"
#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
#, c-format
msgid "%s: unable to open group file\n"
-msgstr "%s: не могу открыть файл групп\n"
+msgstr "%s: не удалось открыть файл групп\n"
#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
#, c-format
msgid "%s: unable to lock shadow group file\n"
-msgstr "%s: не могу заблокировать shadow-файл групп\n"
+msgstr "%s: не удалось заблокировать теневой файл групп\n"
#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
#, c-format
msgid "%s: unable to open shadow group file\n"
-msgstr "%s: не могу открыть shadow-файл групп\n"
+msgstr "%s: не удалось открыть теневой файл групп\n"
#: src/groupadd.c:508
#, c-format
msgid "%s: group %s exists\n"
-msgstr "%s: гÑ\80Ñ\83ппа %s Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82\n"
+msgstr "%s: группа %s существует\n"
#: src/groupdel.c:83
#, c-format
msgid "Usage: groupdel group\n"
-msgstr "Ð\97апÑ\83Ñ\81к: groupdel группа\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: groupdel группа\n"
#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
#, c-format
msgid "%s: error removing group entry\n"
-msgstr "%s: оÑ\88ибка Ñ\83далениÑ\8f запиÑ\81и гÑ\80Ñ\83ппÑ\8b\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c гÑ\80Ñ\83ппÑ\83 из Ñ\84айла гÑ\80Ñ\83пп\n"
#: src/groupdel.c:106
#, c-format
msgid "%s: error removing shadow group entry\n"
-msgstr "%s: оÑ\88ибка Ñ\83далениÑ\8f shadow-запиÑ\81и гÑ\80Ñ\83ппÑ\8b\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c гÑ\80Ñ\83ппÑ\83 из Ñ\82еневого Ñ\84айла гÑ\80Ñ\83пп\n"
#: src/groupdel.c:202
#, c-format
msgid "%s: cannot remove user's primary group.\n"
-msgstr "%s: не могу удалить первичную группу пользователя.\n"
+msgstr "%s: невозможно удалить первичную группу пользователя.\n"
#: src/groupdel.c:290 src/groupmod.c:471
#, c-format
#: src/groupdel.c:303 src/groupmod.c:485
#, c-format
msgid "%s: group %s is a NIS group\n"
-msgstr "%s: группа %s - группа NIS\n"
+msgstr "%s: группа %s является группой NIS\n"
#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
#, c-format
msgid "%s: %s is the NIS master\n"
-msgstr "%s: %s - NIS-мастер\n"
+msgstr "%s: %s -- сервер NIS\n"
#: src/groupmod.c:98
#, c-format
msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
-msgstr "Ð\97апÑ\83Ñ\81к: groupmod [-g gid [-o]] [-n имя] группа\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: groupmod [-g gid [-o]] [-n имя] группа\n"
#: src/groupmod.c:156
#, c-format
msgid "%s: %s not found in /etc/group\n"
-msgstr "%s: %s не найден в /etc/group\n"
+msgstr "%s: %s не найдена в /etc/group\n"
#: src/groupmod.c:242
-#, fuzzy, c-format
+#, c-format
msgid "%s: %u is not a unique gid\n"
-msgstr "%s: %ld - не уникальный gid\n"
+msgstr "%s: %u gid уже существует\n"
#: src/groupmod.c:272
#, c-format
msgid "%s: %s is not a unique name\n"
-msgstr "%s: %s - не уникальное имя\n"
+msgstr "%s: %s имя уже существует\n"
#: src/grpck.c:87
#, c-format
msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-r] [-s] [гÑ\80Ñ\83ппа [shadow-гÑ\80Ñ\83ппа]]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-r] [-s] [Ñ\84айл гÑ\80Ñ\83пп [Ñ\82еневой Ñ\84айл гÑ\80Ñ\83пп]]\n"
#: src/grpck.c:89
#, c-format
msgid "Usage: %s [-r] [-s] [group]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-r] [-s] [гÑ\80Ñ\83ппа]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-r] [-s] [Ñ\84айл гÑ\80Ñ\83пп]\n"
#: src/grpck.c:107 src/pwck.c:108
msgid "No"
#: src/grpck.c:191 src/pwck.c:175
#, c-format
msgid "%s: -s and -r are incompatibile\n"
-msgstr ""
+msgstr "%s: -s и -r не могут использоваться одновременно\n"
#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
#, c-format
msgid "%s: cannot lock file %s\n"
-msgstr "%s: не могу заблокировать файл %s\n"
+msgstr "%s: не удалось заблокировать файл %s\n"
#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
#: src/pwck.c:248
#, c-format
msgid "%s: cannot open file %s\n"
-msgstr "%s: не могу открыть файл %s\n"
+msgstr "%s: не удалось открыть файл %s\n"
#: src/grpck.c:307
#, c-format
msgid "invalid group file entry\n"
-msgstr "неверная запись файла групп\n"
+msgstr "неверная запись в файле групп\n"
#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
#: src/grpck.c:370
msgid "duplicate group entry\n"
-msgstr "дÑ\83блиÑ\80Ñ\83Ñ\8eÑ\89аÑ\8fÑ\81Ñ\8f запиÑ\81Ñ\8c гÑ\80Ñ\83ппÑ\8b\n"
+msgstr "повÑ\82оÑ\80Ñ\8fÑ\8eÑ\89аÑ\8fÑ\81Ñ\8f запиÑ\81Ñ\8c в Ñ\84айле гÑ\80Ñ\83пп\n"
#: src/grpck.c:387
#, c-format
#: src/grpck.c:413
#, c-format
msgid "group %s: no user %s\n"
-msgstr "гÑ\80Ñ\83ппа %s: неÑ\82 полÑ\8cзоваÑ\82елÑ\8f %s\n"
+msgstr "гÑ\80Ñ\83ппа %s: полÑ\8cзоваÑ\82елÑ\8c %s не Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82\n"
#: src/grpck.c:415 src/grpck.c:585
#, c-format
msgid "delete member `%s'? "
-msgstr "удалить члена `%s'? "
+msgstr "удалить члена группы `%s'? "
#: src/grpck.c:452
#, c-format
msgid "invalid shadow group file entry\n"
-msgstr "неверная shadow-запись в файле групп\n"
+msgstr "неверная запись в теневом файле групп\n"
#: src/grpck.c:515
msgid "duplicate shadow group entry\n"
-msgstr "дÑ\83блиÑ\80Ñ\83Ñ\8eÑ\89аÑ\8fÑ\81Ñ\8f shadow-запиÑ\81Ñ\8c в файле групп\n"
+msgstr "повÑ\82оÑ\80Ñ\8fÑ\8eÑ\89аÑ\8fÑ\81Ñ\8f запиÑ\81Ñ\8c в Ñ\82еневом файле групп\n"
#: src/grpck.c:532
msgid "no matching group file entry\n"
-msgstr "соответствующей записи в файле групп нет\n"
+msgstr "отсутствует соответствующая группа в файле групп\n"
#: src/grpck.c:553
#, c-format
msgid "shadow group %s: no administrative user %s\n"
-msgstr "shadow-группа %s: нет административного пользователя %s\n"
+msgstr "теневая группа %s: административный пользователь %s не существует\n"
#: src/grpck.c:555
#, c-format
msgid "delete administrative member `%s'? "
-msgstr "удалить административного члена `%s'? "
+msgstr "удалить административного члена группы `%s'? "
#: src/grpck.c:583
#, c-format
msgid "shadow group %s: no user %s\n"
-msgstr "shadow-группа %s: нет пользователя %s\n"
+msgstr "теневая группа %s: пользователь %s не существует\n"
#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
#, c-format
msgid "%s: cannot update file %s\n"
-msgstr "%s: не могу обновить файл %s\n"
+msgstr "%s: не удалось обновить файл %s\n"
#: src/grpck.c:640 src/pwck.c:606
#, c-format
msgid "%s: the files have been updated\n"
-msgstr "%s: Ñ\84айлÑ\8b бÑ\8bли обновлены\n"
+msgstr "%s: Ñ\84айлÑ\8b бÑ\8bли изменены\n"
#: src/grpck.c:641 src/pwck.c:607
#, c-format
msgid "%s: no changes\n"
-msgstr "%s: изменений нет\n"
+msgstr "%s: изменений не внесено\n"
#: src/grpconv.c:60 src/grpunconv.c:56
#, c-format
msgid "%s: can't lock group file\n"
-msgstr "%s: не могу заблокировать файл групп\n"
+msgstr "%s: не удалось заблокировать файл групп\n"
#: src/grpconv.c:65 src/grpunconv.c:61
#, c-format
msgid "%s: can't open group file\n"
-msgstr "%s: не могу открыть файл групп\n"
+msgstr "%s: не удалось открыть файл групп\n"
#: src/grpconv.c:70 src/grpunconv.c:66
#, c-format
msgid "%s: can't lock shadow group file\n"
-msgstr "%s: не могу заблокировать shadow-файл групп\n"
+msgstr "%s: не удалось заблокировать теневой файл групп\n"
#: src/grpconv.c:75 src/grpunconv.c:71
#, c-format
msgid "%s: can't open shadow group file\n"
-msgstr "%s: не могу открыть shadow-файл групп\n"
+msgstr "%s: не удалось открыть теневой файл групп\n"
#: src/grpconv.c:92
#, c-format
msgid "%s: can't remove shadow group %s\n"
-msgstr "%s: не могу удалить shadow-группу %s\n"
+msgstr "%s: не удалось удалить теневую группу %s\n"
#: src/grpconv.c:130 src/pwconv.c:153
#, c-format
msgid "%s: can't update shadow entry for %s\n"
-msgstr "%s: не могу обновить shadow-запись для %s\n"
+msgstr "%s: не удалось обновить запись в теневом файле паролей для %s\n"
#: src/grpconv.c:140 src/grpunconv.c:88
#, c-format
msgid "%s: can't update entry for group %s\n"
-msgstr "%s: не могу обновить запись для группы %s\n"
+msgstr "%s: не удалось обновить запись для группы %s\n"
#: src/grpconv.c:147 src/grpunconv.c:96
#, c-format
msgid "%s: can't update shadow group file\n"
-msgstr "%s: не могу обновить shadow-файл групп\n"
+msgstr "%s: не удалось обновить теневой файл групп\n"
#: src/grpconv.c:152 src/grpunconv.c:102
#, c-format
msgid "%s: can't update group file\n"
-msgstr "%s: не могу обновить файл групп\n"
+msgstr "%s: не удалось обновить файл групп\n"
#: src/grpunconv.c:107
#, c-format
msgid "%s: can't delete shadow group file\n"
-msgstr "%s: не могу удалить shadow-файл групп\n"
+msgstr "%s: не удалось удалить теневой файл групп\n"
#: src/id.c:53
#, c-format
msgid "Usage: id [-a]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: id [-a]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: id [-a]\n"
#: src/id.c:55
#, c-format
msgid "Usage: id\n"
-msgstr "Ð\97апÑ\83Ñ\81к: id\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: id\n"
#: src/id.c:169
#, c-format
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
+"Использование: lastlog [параметры]\n"
+"\n"
+"Параметры:\n"
+" -u, --user LOGIN\tпоказать запись lastlog для учётной записи LOGIN\n"
+" -h, --help\t\tпоказать это сообщение и завершить работу программы\n"
+" -t, --time DAYS\tпоказать записи lastlog за последние DAYS дней\n"
#: src/lastlog.c:90
#, c-format
msgid "Username Port From Latest\n"
-msgstr "Ð\98мÑ\8f Ð\9fоÑ\80Ñ\82 Ð\9eÑ\82кÑ\83да Ð\9fоÑ\81ледн.\n"
+msgstr "Ð\9fолÑ\8cзоваÑ\82елÑ\8c Ð\9fоÑ\80Ñ\82 С Ð\9fоÑ\81ледний Ñ\80аз\n"
#: src/lastlog.c:92
#, c-format
msgid "Username Port Latest\n"
-msgstr "Ð\98мÑ\8f Ð\9fоÑ\80Ñ\82 Ð\9fоÑ\81ледн.\n"
+msgstr "Ð\9fолÑ\8cзоваÑ\82елÑ\8c Ð\9fоÑ\80Ñ\82 Ð\9fоÑ\81ледний Ñ\80аз\n"
#: src/lastlog.c:107
msgid "**Never logged in**"
-msgstr "**Ð\9dикогда не логинилÑ\81Ñ\8f***"
+msgstr "**Ð\9dикогда не вÑ\85одил в Ñ\81иÑ\81Ñ\82емÑ\83**"
#: src/login.c:156
#, c-format
msgid "Usage: %s [-p] [name]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-p] [имя]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-p] [имÑ\8f полÑ\8cзоваÑ\82еля]\n"
#: src/login.c:159
#, c-format
msgid " %s [-p] [-h host] [-f name]\n"
-msgstr " %s [-p] [-h хост] [-f имя]\n"
+msgstr " %s [-p] [-h имя хоста] [-f имя пользователя]\n"
#: src/login.c:161
#, c-format
msgid " %s [-p] -r host\n"
-msgstr " %s [-p] -r хост\n"
+msgstr " %s [-p] -r имя хоста\n"
#: src/login.c:198
#, c-format
msgid "Invalid login time\n"
-msgstr "Ð\9dедопÑ\83Ñ\81Ñ\82имое вÑ\80емÑ\8f длÑ\8f логина\n"
+msgstr "Ð\92Ñ\85од в Ñ\81иÑ\81Ñ\82емÑ\83 Ñ\81ейÑ\87аÑ\81 запÑ\80еÑ\89Ñ\91н\n"
#: src/login.c:234
#, c-format
"System closed for routine maintenance\n"
msgstr ""
"\n"
-"СиÑ\81Ñ\82ема закÑ\80Ñ\8bÑ\82а на плановое обÑ\81лÑ\83живание\n"
+"СиÑ\81Ñ\82ема закÑ\80Ñ\8bÑ\82а длÑ\8f пÑ\80оведениÑ\8f Ñ\82еÑ\85ниÑ\87еÑ\81кого обÑ\81лÑ\83живаниÑ\8f\n"
#: src/login.c:244
#, c-format
"[Disconnect bypassed -- root login allowed.]\n"
msgstr ""
"\n"
-"[РаÑ\81Ñ\81оединение пÑ\80опÑ\83Ñ\89ено -- root'овÑ\8bй логин Ñ\80азÑ\80еÑ\88ен.]\n"
+"[Ð\9eÑ\82клÑ\8eÑ\87ение не вÑ\8bполнено -- вÑ\85од в Ñ\81иÑ\81Ñ\82емÑ\83 длÑ\8f Ñ\81Ñ\83пеÑ\80полÑ\8cзоваÑ\82елÑ\8f Ñ\80азÑ\80еÑ\88Ñ\91н.]\n"
#: src/login.c:297
#, c-format
"Login timed out after %d seconds.\n"
msgstr ""
"\n"
-"ТаймаÑ\83Ñ\82 логина в Ñ\82еÑ\87ение %d секунд.\n"
+"Ð\92Ñ\80емÑ\8f на вÑ\8bполнение вÑ\85ода в Ñ\81иÑ\81Ñ\82емÑ\83 иÑ\81Ñ\82екло поÑ\81ле %d секунд.\n"
#: src/login.c:565
#, c-format
"%s login: "
msgstr ""
"\n"
-"%s login: "
+"Имя пользователя %s: "
#: src/login.c:879 src/sulogin.c:203
msgid "Login incorrect"
-msgstr "Неудачная попытка"
+msgstr "Неверное имя пользователя"
#: src/login.c:996
msgid "Warning: login re-enabled after temporary lockout.\n"
-msgstr "Ð\9fÑ\80едÑ\83пÑ\80еждение: логинÑ\8b Ñ\81нова оÑ\82кÑ\80Ñ\8bÑ\82Ñ\8b поÑ\81ле вÑ\80еменного закÑ\80Ñ\8bÑ\82иÑ\8f.\n"
+msgstr "Ð\92нимание: вÑ\85од в Ñ\81иÑ\81Ñ\82емÑ\83 Ñ\81нова возможен.\n"
#: src/login.c:1010
#, c-format
msgid "Last login: %s on %s"
-msgstr "Ð\9fоÑ\81ледний логин: %s на %s"
+msgstr "Ð\9fоÑ\81ледний вÑ\85од в Ñ\81иÑ\81Ñ\82емÑ\83: %s на %s"
#: src/login.c:1013
#, c-format
msgid "Last login: %.19s on %s"
-msgstr "Ð\9fоÑ\81ледний логин: %.19s на %s"
+msgstr "Ð\9fоÑ\81ледний вÑ\85од в Ñ\81иÑ\81Ñ\82емÑ\83: %.19s на %s"
#: src/login.c:1018
-#, fuzzy, c-format
+#, c-format
msgid " from %.*s"
msgstr " с %.*s"
#: src/mkpasswd.c:47
#, c-format
msgid "%s: no DBM database on system - no action performed\n"
-msgstr "%s: в Ñ\81иÑ\81Ñ\82еме неÑ\82 базÑ\8b даннÑ\8bÑ\85 DBM, никакиÑ\85 дейÑ\81Ñ\82вий не пÑ\80едпÑ\80инÑ\8fÑ\82о\n"
+msgstr "%s: оÑ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83Ñ\8eÑ\82 Ñ\84айлÑ\8b DBM -- обновление не пÑ\80оизведено\n"
#: src/mkpasswd.c:231 src/mkpasswd.c:236
#, c-format
msgid "%s: cannot overwrite file %s\n"
-msgstr "%s: не могу переписать файл %s\n"
+msgstr "%s: не удалось перезаписать файл %s\n"
#: src/mkpasswd.c:251
#, c-format
msgid "%s: cannot open DBM files for %s\n"
-msgstr "%s: не могу открыть файлы базы данных для %s\n"
+msgstr "%s: не удалось открыть файлы DBM для %s\n"
#: src/mkpasswd.c:286
-#, fuzzy, c-format
+#, c-format
msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: начало с "
+msgstr "%s: строка, начинающаяся с %.16s... слишком длинна\n"
#: src/mkpasswd.c:313
#, c-format
msgstr "%s: ошибка разбора строки \"%s\"\n"
#: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
-#, fuzzy, c-format
+#, c-format
msgid "adding record for name %s\n"
-msgstr "добавляю запись для имени "
+msgstr "добавление записи для имени %s\n"
#: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
-#, fuzzy, c-format
+#, c-format
msgid "%s: error adding record for %s\n"
-msgstr "%s: ошибка добавления записи для "
+msgstr "%s: ошибка добавления записи для %s\n"
#: src/mkpasswd.c:376
#, c-format
msgid "added %d entries, longest was %d\n"
-msgstr "добавлено %d записей, самая длинная - %d\n"
+msgstr "добавлено записей: %d, самая длинная: %d\n"
#: src/mkpasswd.c:389
#, c-format
msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-vf] [-p|g|sp|sg] файл\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-vf] [-p|g|sp|sg] файл\n"
#: src/mkpasswd.c:391
#, c-format
msgid "Usage: %s [-vf] [-p|g|sp] file\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-vf] [-p|g|sp] файл\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-vf] [-p|g|sp] файл\n"
#: src/mkpasswd.c:394
#, c-format
msgid "Usage: %s [-vf] [-p|g] file\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-vf] [-p|g] файл\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-vf] [-p|g] файл\n"
#: src/newgrp.c:61
#, c-format
msgid "Usage: newgrp [-] [group]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: newgrp [-] [группа]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: newgrp [-] [группа]\n"
#: src/newgrp.c:63
#, c-format
msgid "Usage: sg group [[-c] command]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: sg группа [[-c] команда]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: sg группа [[-c] команда]\n"
#: src/newgrp.c:131
-#, fuzzy, c-format
+#, c-format
msgid "unknown uid: %u\n"
-msgstr "неизвестный uid: %d\n"
+msgstr "неизвестный uid: %u\n"
#: src/newgrp.c:213
-#, fuzzy, c-format
+#, c-format
msgid "unknown gid: %lu\n"
-msgstr "неизвестный gid: %ld\n"
+msgstr "неизвестный gid: %lu\n"
#: src/newgrp.c:358 src/newgrp.c:367
msgid "Sorry.\n"
msgstr "Извините.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "слишком много групп\n"
#: src/newusers.c:78
#, c-format
msgid "Usage: %s [input]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [ввод]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [Ñ\84айл]\n"
#: src/newusers.c:382
#, c-format
msgid "%s: can't lock /etc/passwd.\n"
-msgstr "%s: не могу заблокировать /etc/passwd.\n"
+msgstr "%s: не удалось заблокировать /etc/passwd.\n"
#: src/newusers.c:394
#, c-format
msgid "%s: can't lock files, try again later\n"
-msgstr "%s: не могу заблокировать файлы; попробуйте позже\n"
+msgstr "%s: не удалось заблокировать файлы, попробуйте позже\n"
#: src/newusers.c:409
#, c-format
msgid "%s: can't open files\n"
-msgstr "%s: не могу открыть файлы\n"
+msgstr "%s: не удалось открыть файлы\n"
#: src/newusers.c:454
#, c-format
msgid "%s: line %d: invalid line\n"
-msgstr "%s: Ñ\81Ñ\82Ñ\80ока %d: невеÑ\80наÑ\8f Ñ\81Ñ\82Ñ\80ока\n"
+msgstr "%s: Ñ\81Ñ\82Ñ\80ока %d: оÑ\88ибка в Ñ\81Ñ\82Ñ\80оке\n"
#: src/newusers.c:473
#, c-format
msgid "%s: line %d: can't create GID\n"
-msgstr "%s: строка %d: не могу создать GID\n"
+msgstr "%s: строка %d: не удалось создать GID\n"
#: src/newusers.c:489
#, c-format
msgid "%s: line %d: can't create UID\n"
-msgstr "%s: строка %d: не могу создать UID\n"
+msgstr "%s: строка %d: не удалось создать UID\n"
#: src/newusers.c:502
#, c-format
msgid "%s: line %d: cannot find user %s\n"
-msgstr "%s: строка %d: не могу найти пользователя %s\n"
+msgstr "%s: строка %d: не удалось найти пользователя %s\n"
#: src/newusers.c:511
#, c-format
msgid "%s: line %d: can't update password\n"
-msgstr "%s: строка %d: не могу обновить пароль\n"
+msgstr "%s: строка %d: не удалось обновить пароль\n"
#: src/newusers.c:529
#, c-format
msgid "%s: line %d: mkdir failed\n"
-msgstr "%s: строка %d: неудача mkdir\n"
+msgstr "%s: строка %d: не удалось создать каталог\n"
#: src/newusers.c:534
#, c-format
msgid "%s: line %d: chown failed\n"
-msgstr "%s: строка %d: неудача chown\n"
+msgstr "%s: строка %d: не удалось изменить владельца каталога\n"
#: src/newusers.c:544
#, c-format
msgid "%s: line %d: can't update entry\n"
-msgstr "%s: строка %d: не могу обновить запись\n"
+msgstr "%s: строка %d: не удалось обновить запись\n"
#: src/newusers.c:576
#, c-format
#: src/passwd.c:154
#, c-format
msgid "Usage: %s [-f|-s] [name]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-f|-s] [имя]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзованик: %s [-f|-s] [имÑ\8f полÑ\8cзоваÑ\82еля]\n"
#: src/passwd.c:158
#, c-format
msgid " %s [-x max] [-n min] [-w warn] [-i inact] name\n"
-msgstr " %s [-x макс] [-n мин] [-w предупр] [-i неакт] имя\n"
+msgstr ""
+" %s [-x максимальный срок действия пароля (дней)] [-n минимальный срок "
+"действия пароля (дней)] [-w предупреждать за (дней)] [-i деактивировать "
+"через (дней)] имя пользователя\n"
#: src/passwd.c:160
#, c-format
msgid " %s {-l|-u|-d|-S|-e} name\n"
-msgstr " %s {-l|-u|-d|-S|-e} имя\n"
+msgstr " %s {-l|-u|-d|-S|-e} имя пользователя\n"
#: src/passwd.c:214
msgid "Old password: "
"Enter the new password (minimum of %d, maximum of %d characters)\n"
"Please use a combination of upper and lower case letters and numbers.\n"
msgstr ""
-"Введите новый пароль (минимум %d, максимум %d символов)\n"
-"Используйте комбинацию больших и маленьких латинских букв и цифр.\n"
+"Введите новый пароль (минимальная длина %d, максимальная длина %d символов)\n"
+" Используйте комбинацию из символов в верхнем и нижнем регистре и цифр.\n"
#: src/passwd.c:253
msgid "New password: "
#: src/passwd.c:263
#, c-format
msgid "Try again.\n"
-msgstr "Попробуйте еще раз.\n"
+msgstr "Попробуйте ещё раз.\n"
#: src/passwd.c:274
#, c-format
"Warning: weak password (enter it again to use it anyway).\n"
msgstr ""
"\n"
-"Ð\9fÑ\80едÑ\83пÑ\80еждение: Ñ\81лабÑ\8bй паÑ\80олÑ\8c (введиÑ\82е его еÑ\89е Ñ\80аз еÑ\81ли вÑ\81е-Ñ\82аки Ñ\85оÑ\82иÑ\82е "
-"его).\n"
+"Ð\92нимание: Ñ\81лиÑ\88ком пÑ\80оÑ\81Ñ\82ой паÑ\80олÑ\8c (Ñ\87Ñ\82обÑ\8b вÑ\81Ñ\91 Ñ\80авно иÑ\81полÑ\8cзоваÑ\82Ñ\8c Ñ\8dÑ\82оÑ\82 паÑ\80олÑ\8c, "
+"введиÑ\82е его еÑ\89Ñ\91 Ñ\80аз).\n"
#: src/passwd.c:283
#, c-format
msgid "They don't match; try again.\n"
-msgstr "Ð\9eни не Ñ\81овпадаÑ\8eÑ\82; попÑ\80обÑ\83йÑ\82е еÑ\89е раз.\n"
+msgstr "Ð\9fаÑ\80оли не Ñ\81овпадаÑ\8eÑ\82, попÑ\80обÑ\83йÑ\82е еÑ\89Ñ\91 раз.\n"
#: src/passwd.c:360 src/passwd.c:377
#, c-format
msgid "The password for %s cannot be changed.\n"
-msgstr "Ð\9fаÑ\80олÑ\8c длÑ\8f %s измениÑ\82Ñ\8c нелÑ\8cзÑ\8f.\n"
+msgstr "Ð\9fаÑ\80олÑ\8c полÑ\8cзоваÑ\82елÑ\8f %s не можеÑ\82 бÑ\8bÑ\82Ñ\8c изменÑ\91н.\n"
#: src/passwd.c:390
#, c-format
msgid "Sorry, the password for %s cannot be changed yet.\n"
-msgstr "Ð\98звиниÑ\82е, паÑ\80олÑ\8c длÑ\8f %s пока измениÑ\82Ñ\8c нелÑ\8cзÑ\8f.\n"
+msgstr "Ð\98звиниÑ\82е, но паÑ\80олÑ\8c полÑ\8cзоваÑ\82елÑ\8f %s пока не можеÑ\82 бÑ\8bÑ\82Ñ\8c изменÑ\91н.\n"
#: src/passwd.c:472
#, c-format
#: src/passwd.c:701
#, c-format
msgid "%s: Cannot execute %s"
-msgstr "%s: Не могу исполнить %s"
+msgstr "%s: Не удалось выполнить %s"
#: src/passwd.c:786
#, c-format
msgstr "%s: хранилище %s не поддерживается\n"
#: src/passwd.c:884
-#, fuzzy, c-format
+#, c-format
msgid "%s: You may not view or modify password information for %s.\n"
-msgstr "Вы не можете изменить пароль для %s.\n"
+msgstr "%s: Вы не можете увидеть или изменить пароль для %s.\n"
#: src/passwd.c:934
#, c-format
msgid "Changing password for %s\n"
-msgstr "Изменяем пароль для %s\n"
+msgstr "Изменение пароля для %s\n"
#: src/passwd.c:938
#, c-format
msgid "The password for %s is unchanged.\n"
-msgstr "Ð\9fаÑ\80олÑ\8c длÑ\8f %s Ð\9dÐ\95 изменен.\n"
+msgstr "Ð\9fаÑ\80олÑ\8c длÑ\8f %s не бÑ\8bл изменÑ\91н.\n"
#: src/passwd.c:987
#, c-format
msgid "Password changed.\n"
-msgstr "Пароль изменен.\n"
+msgstr "Пароль изменён.\n"
#: src/pwck.c:87
#, c-format
msgid "Usage: %s [-q] [-r] [-s] [passwd [shadow]]\n"
-msgstr "Запуск: %s [-q] [-r] [-s] [пароль [shadow]]\n"
+msgstr ""
+"Использование: %s [-q] [-r] [-s] [файл паролей [теневой файл паролей]]\n"
#: src/pwck.c:90
#, c-format
msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-q] [-r] [-s] [паÑ\80олÑ\8c]\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-q] [-r] [-s] [Ñ\84айл паÑ\80олей]\n"
#: src/pwck.c:292
#, c-format
#: src/pwck.c:354
msgid "duplicate password entry\n"
-msgstr "дÑ\83блиÑ\80Ñ\83Ñ\8eÑ\89аÑ\8fÑ\81Ñ\8f запиÑ\81Ñ\8c паÑ\80олÑ\8f\n"
+msgstr "повÑ\82оÑ\80Ñ\8fÑ\8eÑ\89аÑ\8fÑ\81Ñ\8f запиÑ\81Ñ\8c в Ñ\84айле паÑ\80олей\n"
#: src/pwck.c:370
-#, fuzzy, c-format
+#, c-format
msgid "invalid user name '%s'\n"
-msgstr "неверное имя пользователя `%s'\n"
+msgstr "неверное имя пользователя '%s'\n"
#: src/pwck.c:384
-#, fuzzy, c-format
+#, c-format
msgid "user %s: no group %u\n"
-msgstr "полÑ\8cзоваÑ\82елÑ\8c %s: неÑ\82 гÑ\80Ñ\83ппÑ\8b %d\n"
+msgstr "полÑ\8cзоваÑ\82елÑ\8c %s: гÑ\80Ñ\83ппа %u не Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82\n"
#: src/pwck.c:400
#, c-format
#: src/pwck.c:416
#, c-format
msgid "user %s: program %s does not exist\n"
-msgstr "полÑ\8cзоваÑ\82елÑ\8c %s: пÑ\80огÑ\80амма %s не существует\n"
+msgstr "полÑ\8cзоваÑ\82елÑ\8c %s: команднаÑ\8f оболоÑ\87ка %s не существует\n"
#: src/pwck.c:452
#, c-format
msgid "invalid shadow password file entry\n"
-msgstr "неверная запись в shadow-файле паролей\n"
+msgstr "неверная запись в теневом файле паролей\n"
#: src/pwck.c:514
msgid "duplicate shadow password entry\n"
-msgstr "дÑ\83блиÑ\80Ñ\83Ñ\8eÑ\89аÑ\8fÑ\81Ñ\8f запиÑ\81Ñ\8c в shadow-файле паролей\n"
+msgstr "повÑ\82оÑ\80Ñ\8fÑ\8eÑ\89аÑ\8fÑ\81Ñ\8f запиÑ\81Ñ\8c в Ñ\82еневом файле паролей\n"
#: src/pwck.c:538
msgid "no matching password file entry\n"
-msgstr "соответствующей записи в файле паролей нет\n"
+msgstr "отсутствует соответствующая запись в файле паролей\n"
#: src/pwck.c:556
#, c-format
msgid "user %s: last password change in the future\n"
-msgstr "полÑ\8cзоваÑ\82елÑ\8c %s: поÑ\81леднее изменение пароля в будущем\n"
+msgstr "полÑ\8cзоваÑ\82елÑ\8c %s: вÑ\80емÑ\8f поÑ\81леднего изменениÑ\8f пароля в будущем\n"
#: src/pwconv.c:85 src/pwunconv.c:79
#, c-format
msgid "%s: can't lock passwd file\n"
-msgstr "%s: не могу заблокировать файл паролей\n"
+msgstr "%s: не удалось заблокировать файл паролей\n"
#: src/pwconv.c:90 src/pwunconv.c:84
#, c-format
msgid "%s: can't open passwd file\n"
-msgstr "%s: не могу открыть файл паролей\n"
+msgstr "%s: не удалось открыть файл паролей\n"
#: src/pwconv.c:118
#, c-format
msgid "%s: can't remove shadow entry for %s\n"
-msgstr "%s: не могу удалить shadow-запись для %s\n"
+msgstr "%s: не удалось удалить запись в теневом файле паролей для %s\n"
#: src/pwconv.c:163
#, c-format
msgid "%s: can't update passwd entry for %s\n"
-msgstr "%s: не могу обновить запись пароля для %s\n"
+msgstr "%s: не удалось обновить запись в файле паролей для %s\n"
#: src/pwconv.c:170
#, c-format
msgid "%s: can't update shadow file\n"
-msgstr "%s: не могу обновить shadow-файл\n"
+msgstr "%s: не удалось обновить теневой файл паролей\n"
#: src/pwconv.c:174
#, c-format
msgid "%s: can't update passwd file\n"
-msgstr "%s: не могу обновить файл паролей\n"
+msgstr "%s: не удалось обновить файл паролей\n"
#: src/pwunconv.c:124
#, c-format
msgid "%s: can't update entry for user %s\n"
-msgstr "%s: не могу обновить запись для пользователя %s\n"
+msgstr "%s: не удалось обновить запись для пользователя %s\n"
#: src/pwunconv.c:143
#, c-format
msgid "%s: can't delete shadow password file\n"
-msgstr "%s: не могу удалить shadow-файл паролей\n"
+msgstr "%s: не удалось удалить теневой файл паролей\n"
#: src/su.c:132
msgid "Sorry."
#: src/su.c:320
#, c-format
msgid "%s: must be run from a terminal\n"
-msgstr "%s: должно бÑ\8bÑ\82Ñ\8c запÑ\83Ñ\89ено Ñ\81 терминала\n"
+msgstr "%s: должен вÑ\8bполнÑ\8fÑ\82Ñ\8cÑ\81Ñ\8f из терминала\n"
#: src/su.c:419
#, c-format
#: src/su.c:484 src/su.c:500
#, c-format
msgid "You are not authorized to su %s\n"
-msgstr "Ð\92ам не Ñ\80азÑ\80еÑ\88ено делаÑ\82Ñ\8c su %s\n"
+msgstr "У ваÑ\81 неÑ\82 пÑ\80ава пеÑ\80еклÑ\8eÑ\87аÑ\82Ñ\8c Ñ\83Ñ\87Ñ\91Ñ\82нÑ\83Ñ\8e запиÑ\81Ñ\8c %s\n"
#: src/su.c:495
msgid "(Enter your own password.)"
#: src/su.c:741
#, c-format
msgid "No shell\n"
-msgstr "Ð\9dеÑ\82 Ñ\88елла\n"
+msgstr "Ð\9eÑ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83еÑ\82 команднаÑ\8f оболоÑ\87ка\n"
#: src/suauth.c:104
#, c-format
msgid "Access to su to that account DENIED.\n"
-msgstr "Ð\94оÑ\81Ñ\82Ñ\83п к su Ñ\81 Ñ\8dÑ\82ого аккаÑ\83нÑ\82а Ð\97Ð\90Ð\9fÐ Ð\95ЩÐ\95Ð\9d.\n"
+msgstr "Ð\9fеÑ\80еклÑ\8eÑ\87ение на Ñ\8dÑ\82Ñ\83 Ñ\83Ñ\87Ñ\91Ñ\82нÑ\83Ñ\8e запиÑ\81Ñ\8c Ð\97Ð\90Ð\9fÐ Ð\95ЩÐ\95Ð\9dÐ\9e.\n"
#: src/suauth.c:112
#, c-format
msgid "Password authentication bypassed.\n"
-msgstr "Ð\90Ñ\83Ñ\82енÑ\82икаÑ\86иÑ\8f по паролю пропущена.\n"
+msgstr "Ð\9fÑ\80овеÑ\80ка подлинноÑ\81Ñ\82и по паролю пропущена.\n"
#: src/suauth.c:121
#, c-format
msgid "Please enter your OWN password as authentication.\n"
-msgstr "Введите ваш СОБСТВЕННЫЙ пароль для аутентикации.\n"
+msgstr "Введите ваш СОБСТВЕННЫЙ пароль.\n"
#: src/sulogin.c:118
#, c-format
msgid "No password file\n"
-msgstr "Ð\9dеÑ\82 Ñ\84айла паролей\n"
+msgstr "Ð\9eÑ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83еÑ\82 Ñ\84айл паролей\n"
#: src/sulogin.c:160
#, c-format
msgid "No password entry for 'root'\n"
-msgstr "Ð\9dеÑ\82 запиÑ\81и паÑ\80олÑ\8f длÑ\8f 'root'\n"
+msgstr "Ð\9eÑ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83еÑ\82 запиÑ\81Ñ\8c длÑ\8f Ñ\81Ñ\83пеÑ\80полÑ\8cзоваÑ\82елÑ\8f в Ñ\84айле паÑ\80олей\n"
#: src/sulogin.c:175
msgid ""
"(or give root password for system maintenance):"
msgstr ""
"\n"
-"Введите control-d для продолжения нормальной загрузки,\n"
-"(или пароль root'а для обслуживания системы):"
+"Нажмите control-d для продолжения загрузки в обычном режиме,\n"
+"(или введите пароль суперпользователя для выполнения системного "
+"обслуживания):"
#: src/sulogin.c:210
msgid "Entering System Maintenance Mode\n"
-msgstr "Вход в режим обслуживания системы\n"
+msgstr "Вход в режим системного обслуживания\n"
#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
#, c-format
msgid "%s: invalid numeric argument `%s'\n"
-msgstr "%s: невеÑ\80нÑ\8bй Ñ\87иÑ\81ловой аÑ\80гÑ\83менÑ\82 `%s'\n"
+msgstr "%s: невеÑ\80нÑ\8bй Ñ\87иÑ\81ловой паÑ\80амеÑ\82Ñ\80 `%s'\n"
#: src/useradd.c:298
#, c-format
#: src/useradd.c:418
#, c-format
msgid "%s: cannot create new defaults file\n"
-msgstr "%s: не могу создать новый файл умолчаний\n"
+msgstr "%s: не удалось создать новый файл значений по умолчанию\n"
#: src/useradd.c:423
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot open new defaults file\n"
-msgstr "%s: не могу создать новый файл умолчаний\n"
+msgstr "%s: не удалось открыть новый файл значений по умолчанию\n"
#: src/useradd.c:515 src/useradd.c:526
#, c-format
msgid "%s: rename: %s"
-msgstr "%s: переименование: %s"
+msgstr "%s: переименовать: %s"
#: src/useradd.c:619 src/usermod.c:248
#, c-format
msgid "%s: group `%s' is a NIS group.\n"
-msgstr "%s: группа `%s' - группа NIS.\n"
+msgstr "%s: группа `%s' является группой NIS.\n"
#: src/useradd.c:628 src/usermod.c:257
#, c-format
msgid "%s: too many groups specified (max %d).\n"
-msgstr "%s: задано слишком много групп (макс. %d).\n"
+msgstr "%s: указано слишком много групп (максимум %d).\n"
#: src/useradd.c:660
#, c-format
msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
-msgstr "Запуск: useradd [-u uid [-o]] [-g группа] [-G группа,...] \n"
+msgstr ""
+"Использование: useradd [-u uid [-o]] [-g основная группа] [-G группа,...] \n"
#: src/useradd.c:663
#, c-format
msgid " [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
-msgstr " [-d дом.] [-s шелл] [-c коммент.] [-m [-k шаблоны]]\n"
+msgstr ""
+" [-d домашний каталог] [-s командная оболочка] [-c "
+"комментарий] [-m [-k шаблон]]\n"
#: src/useradd.c:665 src/useradd.c:671
#, c-format
msgid " [-f inactive] [-e expire]\n"
-msgstr " [-f неактивн.] [-e истекает]\n"
+msgstr " [-f деактивация] [-e срок действия учётной записи ]\n"
#: src/useradd.c:667
#, c-format
msgid " [-p passwd] name\n"
-msgstr " [-p пароль] имя\n"
+msgstr " [-p пароль] имя пользователя\n"
#: src/useradd.c:669
#, c-format
msgid " useradd -D [-g group] [-b base] [-s shell]\n"
-msgstr " useradd -D [-g группа] [-b база] [-s шелл]\n"
+msgstr ""
+" useradd -D [-g основная группа] [-b базовый каталог] [-s командная "
+"оболочка]\n"
#: src/useradd.c:756 src/usermod.c:444
#, c-format
msgid "%s: error locking group file\n"
-msgstr "%s: оÑ\88ибка блокиÑ\80овки Ñ\84айла групп\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c заблокиÑ\80оваÑ\82Ñ\8c Ñ\84айл групп\n"
#: src/useradd.c:760 src/usermod.c:449
#, c-format
msgid "%s: error opening group file\n"
-msgstr "%s: оÑ\88ибка оÑ\82кÑ\80Ñ\8bÑ\82иÑ\8f Ñ\84айла групп\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c оÑ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\84айл групп\n"
#: src/useradd.c:766 src/usermod.c:542
#, c-format
msgid "%s: error locking shadow group file\n"
-msgstr "%s: оÑ\88ибка блокиÑ\80овки shadow-Ñ\84айла групп\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c заблокиÑ\80оваÑ\82Ñ\8c Ñ\82еневой Ñ\84айл групп\n"
#: src/useradd.c:771 src/usermod.c:548
#, c-format
msgid "%s: error opening shadow group file\n"
-msgstr "%s: оÑ\88ибка оÑ\82кÑ\80Ñ\8bÑ\82иÑ\8f shadow-Ñ\84айла групп\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c оÑ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\82еневой Ñ\84айл групп\n"
#: src/useradd.c:909
-#, fuzzy, c-format
+#, c-format
msgid "%s: uid %u is not unique\n"
-msgstr "%s: uid %d не уникален\n"
+msgstr "%s: uid %u уже существует\n"
#: src/useradd.c:939
#, c-format
msgid "%s: can't get unique uid\n"
-msgstr "%s: не могу получить уникальный uid\n"
+msgstr "%s: не удалось выбрать уникальный uid\n"
#: src/useradd.c:975
#, c-format
#: src/useradd.c:1028
#, c-format
msgid "%s: shadow passwords required for -e\n"
-msgstr "%s: для -e требуются shadow-пароли\n"
+msgstr "%s: для -e необходима поддержка теневых паролей\n"
#: src/useradd.c:1044
#, c-format
msgid "%s: shadow passwords required for -f\n"
-msgstr "%s: для -f требуются shadow-пароли\n"
+msgstr "%s: для -f необходима поддержка теневых паролей\n"
#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
#: src/usermod.c:873
#: src/useradd.c:1122
#, c-format
msgid "%s: invalid shell `%s'\n"
-msgstr "%s: неверный шелл `%s'\n"
+msgstr "%s: неверная командная оболочка `%s'\n"
#: src/useradd.c:1163
-#, fuzzy, c-format
+#, c-format
msgid "%s: invalid user name '%s'\n"
-msgstr "%s: неверное имя пользователя `%s'\n"
+msgstr "%s: неверное имя пользователя '%s'\n"
#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
#, c-format
msgid "%s: cannot rewrite password file\n"
-msgstr "%s: не могу переписать файл паролей\n"
+msgstr "%s: не удалось перезаписать файл паролей\n"
#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
#, c-format
msgid "%s: cannot rewrite shadow password file\n"
-msgstr "%s: не могу переписать shadow-файл паролей\n"
+msgstr "%s: не удалось перезаписать теневой файл паролей\n"
#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
#, c-format
msgid "%s: unable to lock password file\n"
-msgstr "%s: не могу заблокировать файл паролей\n"
+msgstr "%s: не удалось заблокировать файл паролей\n"
#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
#, c-format
msgid "%s: unable to open password file\n"
-msgstr "%s: не могу открыть файл паролей\n"
+msgstr "%s: не удалось открыть файл паролей\n"
#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
#, c-format
msgid "%s: cannot lock shadow password file\n"
-msgstr "%s: не могу заблокировать shadow-файл паролей\n"
+msgstr "%s: не удалось заблокировать теневой файл паролей\n"
#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
#, c-format
msgid "%s: cannot open shadow password file\n"
-msgstr "%s: не могу открыть shadow-файл паролей\n"
+msgstr "%s: не удалось открыть теневой файл паролей\n"
#: src/useradd.c:1354
#, c-format
msgid "%s: error adding new password entry\n"
-msgstr "%s: оÑ\88ибка добавлениÑ\8f новой запиÑ\81и паÑ\80олÑ\8f\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c добавиÑ\82Ñ\8c запиÑ\81Ñ\8c в Ñ\84айл паÑ\80олей\n"
#: src/useradd.c:1365 src/usermod.c:1063
#, c-format
msgid "%s: error adding new shadow password entry\n"
-msgstr "%s: оÑ\88ибка добавлениÑ\8f новой shadow-запиÑ\81и паÑ\80олÑ\8f\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c добавиÑ\82Ñ\8c запиÑ\81Ñ\8c в Ñ\82еневой Ñ\84айл паÑ\80олей\n"
#: src/useradd.c:1393
#, c-format
msgid "%s: cannot create directory %s\n"
-msgstr "%s: не могу создать каталог %s\n"
+msgstr "%s: не удалось создать каталог %s\n"
#: src/useradd.c:1423
#, c-format
msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
msgstr ""
+"Группа \"mail\" не существует, создаётся хранилище почты с правами 0600.\n"
#: src/useradd.c:1446
-#, fuzzy, c-format
+#, c-format
msgid "Can't create mail spool for user %s.\n"
-msgstr "%s: не могу обновить запись для пользователя %s\n"
+msgstr "Не удалось создать хранилище почты для пользователя %s.\n"
#: src/useradd.c:1550 src/usermod.c:919
#, c-format
msgid "%s: user %s exists\n"
-msgstr "%s: полÑ\8cзоваÑ\82елÑ\8c %s Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82\n"
+msgstr "%s: пользователь %s существует\n"
#: src/useradd.c:1564
#, c-format
msgid ""
"%s: group %s exists - if you want to add this user to that group, use -g.\n"
msgstr ""
+"%s: группа %s существует -- если вы хотите добавите в неё этого "
+"пользователя, используйте -g.\n"
#: src/useradd.c:1602
#, c-format
msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
-msgstr "%s: пÑ\80едÑ\83пÑ\80еждение: CREATE_HOME не поддерживается, используйте -m.\n"
+msgstr "%s: внимание: CREATE_HOME не поддерживается, используйте -m.\n"
#: src/userdel.c:108
#, c-format
msgid "Usage: %s [-r] name\n"
-msgstr "Ð\97апÑ\83Ñ\81к: %s [-r] имя\n"
+msgstr "Ð\98Ñ\81полÑ\8cзование: %s [-r] имÑ\8f полÑ\8cзоваÑ\82еля\n"
#: src/userdel.c:160 src/userdel.c:221
#, c-format
msgid "%s: error updating group entry\n"
-msgstr "%s: оÑ\88ибка обновлениÑ\8f запиÑ\81и гÑ\80Ñ\83ппÑ\8b\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c обновиÑ\82Ñ\8c запиÑ\81Ñ\8c в Ñ\84айле гÑ\80Ñ\83пп\n"
#: src/userdel.c:315
#, c-format
msgid "%s: cannot open group file\n"
-msgstr "%s: не могу открыть файл групп\n"
+msgstr "%s: не удалось открыть файл групп\n"
#: src/userdel.c:325
#, c-format
msgid "%s: cannot open shadow group file\n"
-msgstr "%s: не могу открыть shadow-файл групп\n"
+msgstr "%s: не удалось открыть теневой файл групп\n"
#: src/userdel.c:343
#, c-format
msgid "%s: error deleting password entry\n"
-msgstr "%s: оÑ\88ибка Ñ\83далениÑ\8f запиÑ\81и паÑ\80олÑ\8f\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c запиÑ\81Ñ\8c из Ñ\84айла паÑ\80олей\n"
#: src/userdel.c:347
#, c-format
msgid "%s: error deleting shadow password entry\n"
-msgstr "%s: оÑ\88ибка Ñ\83далениÑ\8f shadow-запиÑ\81и паÑ\80олÑ\8f\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c запиÑ\81Ñ\8c из Ñ\82еневого Ñ\84айла паÑ\80олей\n"
#: src/userdel.c:388
#, c-format
msgid "%s: user %s is currently logged in\n"
-msgstr "%s: полÑ\8cзоваÑ\82елÑ\8c %s в наÑ\81Ñ\82оÑ\8fÑ\89ее вÑ\80емя в системе\n"
+msgstr "%s: полÑ\8cзоваÑ\82елÑ\8c %s наÑ\85одиÑ\82Ñ\81я в системе\n"
#: src/userdel.c:496 src/userdel.c:641
#, c-format
msgid "%s: %s not owned by %s, not removing\n"
-msgstr "%s: %s не принадлежит %s, не удаляю\n"
+msgstr "%s: %s не принадлежит %s, удаление не выполнено\n"
#: src/userdel.c:502
#, c-format
msgid "%s: warning: can't remove "
-msgstr "%s: пÑ\80едÑ\83пÑ\80еждение: не могÑ\83 удалить "
+msgstr "%s: внимание: не Ñ\83далоÑ\81Ñ\8c удалить "
#: src/userdel.c:592 src/usermod.c:722
#, c-format
#: src/userdel.c:607 src/usermod.c:738
#, c-format
msgid "%s: user %s is a NIS user\n"
-msgstr "%s: пользователь %s - пользователь NIS\n"
+msgstr "%s: пользователь %s является пользователем NIS\n"
#: src/userdel.c:664
#, c-format
msgid "%s: not removing directory %s (would remove home of user %s)\n"
-msgstr "%s: не удаляю каталог %s (предполагалось удаление каталога юзера %s)\n"
+msgstr ""
+"%s: каталог %s не удалён (является домашним каталогом пользователя %s)\n"
#: src/userdel.c:678
#, c-format
msgid "%s: error removing directory %s\n"
-msgstr "%s: оÑ\88ибка Ñ\83далениÑ\8f каÑ\82алога %s\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c каÑ\82алог %s\n"
#: src/usermod.c:289
#, c-format
msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
-msgstr "Запуск: %s\t[-u uid [-o]] [-g группа] [-G группа,...] \n"
+msgstr ""
+"Использование: %s\t[-u uid [-o]] [-g основная группа] [-G группа,...] \n"
#: src/usermod.c:293
#, c-format
msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
-msgstr "\t\t[-d дом. [-m]] [-s шелл] [-c коммент.t] [-l новое_имя]\n"
+msgstr ""
+"\t\t[-d домашний каталог [-m]] [-s командная оболочка] [-c комментарий] [-l "
+"новое имя пользователя]\n"
#: src/usermod.c:296
#, c-format
msgid "[-f inactive] [-e expire] "
-msgstr "[-f неакÑ\82ивн.] [-e иÑ\81Ñ\82екаеÑ\82] "
+msgstr "[-f деакÑ\82иваÑ\86иÑ\8f] [-e Ñ\81Ñ\80ок дейÑ\81Ñ\82виÑ\8f Ñ\83Ñ\87Ñ\91Ñ\82ной запиÑ\81и ] "
#: src/usermod.c:298
#, c-format
msgid "[-p passwd] [-L|-U] name\n"
-msgstr "[-p пароль] [-L|-U] имя\n"
+msgstr "[-p пароль] [-L|-U] имя пользователя\n"
#: src/usermod.c:476
#, c-format
msgid "%s: out of memory in update_group\n"
-msgstr "%s: нехватка памяти в update_group\n"
+msgstr "%s: недостаточно памяти в update_group\n"
#: src/usermod.c:585
#, c-format
msgid "%s: out of memory in update_gshadow\n"
-msgstr "%s: нехватка памяти в update_gshadow\n"
+msgstr "%s: недостаточно памяти в update_gshadow\n"
#: src/usermod.c:896
#, c-format
msgid "%s: no flags given\n"
-msgstr "%s: опÑ\86ии не заданÑ\8b\n"
+msgstr "%s: на заданÑ\8b клÑ\8eÑ\87и\n"
#: src/usermod.c:903
#, c-format
msgid "%s: shadow passwords required for -e and -f\n"
-msgstr "%s: для -e и -f требуются shadow-пароли\n"
+msgstr "%s: для -e и -f требуется поддержка теневых файлов паролей\n"
#: src/usermod.c:924
-#, fuzzy, c-format
+#, c-format
msgid "%s: uid %lu is not unique\n"
-msgstr "%s: uid %ld не уникален\n"
+msgstr "%s: uid %lu уже существует\n"
#: src/usermod.c:1047
#, c-format
msgid "%s: error changing password entry\n"
-msgstr "%s: оÑ\88ибка изменениÑ\8f запиÑ\81и паÑ\80олÑ\8f\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c измениÑ\82Ñ\8c запиÑ\81Ñ\8c в Ñ\84айле паÑ\80олей\n"
#: src/usermod.c:1053
#, c-format
msgid "%s: error removing password entry\n"
-msgstr "%s: оÑ\88ибка Ñ\83далениÑ\8f запиÑ\81и паÑ\80олÑ\8f\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c запиÑ\81Ñ\8c из Ñ\84айла паÑ\80олей\n"
#: src/usermod.c:1070
#, c-format
msgid "%s: error removing shadow password entry\n"
-msgstr "%s: оÑ\88ибка Ñ\83далениÑ\8f shadow-запиÑ\81и паÑ\80олÑ\8f\n"
+msgstr "%s: не Ñ\83далоÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c запиÑ\81Ñ\8c из Ñ\82еневого Ñ\84айла паÑ\80олей\n"
#: src/usermod.c:1098
#, c-format
msgid "%s: directory %s exists\n"
-msgstr "%s: каÑ\82алог %s Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82\n"
+msgstr "%s: каталог %s существует\n"
#: src/usermod.c:1106
#, c-format
msgid "%s: can't create %s\n"
-msgstr "%s: не могу создать %s\n"
+msgstr "%s: не удалось создать %s\n"
#: src/usermod.c:1111
#, c-format
msgid "%s: can't chown %s\n"
-msgstr "%s: не могу сделать chown %s\n"
+msgstr "%s: не удалось сменить владельца %s\n"
#: src/usermod.c:1128
#, c-format
msgid "%s: cannot rename directory %s to %s\n"
-msgstr "%s: не могу переименовать каталог %s в %s\n"
+msgstr "%s: не удалось переименовать каталог %s в %s\n"
#: src/usermod.c:1223
#, c-format
msgid "%s: warning: %s not owned by %s\n"
-msgstr "%s: пÑ\80едÑ\83пÑ\80еждение %s не принадлежит %s\n"
+msgstr "%s: внимание: %s не принадлежит %s\n"
#: src/usermod.c:1229
msgid "failed to change mailbox owner"
-msgstr "неудача изменения принадлежности почтового ящика"
+msgstr "не удалось сменить владельца почтового ящика"
#: src/usermod.c:1237
msgid "failed to rename mailbox"
-msgstr "неудача переименования почтового ящика"
+msgstr "не удалось переименовать почтовый ящик"
#: src/vipw.c:104
#, c-format
"%s: %s is unchanged\n"
msgstr ""
"\n"
-"%s: %s Ð\9dÐ\95 изменено\n"
+"%s: %s не бÑ\8bл изменÑ\91н\n"
#: src/vipw.c:131
msgid "Couldn't lock file"
-msgstr "Не могу заблокировать файл"
+msgstr "Не удалось заблокировать файл"
#: src/vipw.c:140
msgid "Couldn't make backup"
-msgstr "Не могу создать резервную копию"
+msgstr "Не удалось создать резервную копию"
#: src/vipw.c:196
#, c-format
msgid "%s: can't restore %s: %s (your changes are in %s)\n"
-msgstr "%s: не могу восстановить %s: %s (ваши изменения в %s)\n"
+msgstr "%s: не удалось восстановить %s: %s (ваши изменения в %s)\n"
#: src/vipw.c:234
#, c-format
"`vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n"
"`vigr' edits /etc/group `vigr -s' edits /etc/gshadow\n"
msgstr ""
-"Ð\97апÑ\83Ñ\81к:\n"
-"`vipw' правит /etc/passwd `vipw -s' правит /etc/shadow\n"
-"`vigr' правит /etc/group `vigr -s' правит /etc/gshadow\n"
+"Ð\98Ñ\81полÑ\8cзование:\n"
+"`vipw' редактирует /etc/passwd `vipw -s' редактирует /etc/shadow\n"
+"`vigr' редактирует /etc/group `vigr -s' редактирует /etc/gshadow\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "malloc(%d) failed\n"
msgstr ""
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr ""
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr ""
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr ""
msgstr ""
"Project-Id-Version: shadow 4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-25 11:14+0200\n"
"Last-Translator: Peter KLFMANiK Mann <Peter.Mann@tuke.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
msgid "malloc(%d) failed\n"
msgstr "volanie malloc(%d) zlyhalo\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Nemôžem vyhradiť dostatok miesta pre konfiguračné údaje.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Použitie: lastlog [voľby]\n"
"\n"
"Voľby:\n"
-" -u, --login LOGIN\tvypíše posledné prihlásenia používateľa uvedeného ako "
+" -u, --user LOGIN\tvypíše posledné prihlásenia používateľa uvedeného ako "
"LOGIN\n"
" -h, --help\t\tzobrazí túto nápovedu a ukončí sa\n"
" -t, --time DAYS\tvypíše posledné prihlásenia nie staršie ako DAYS dní\n"
msgid "Sorry.\n"
msgstr "Ľutujem.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "príliš mnoho skupín\n"
msgstr ""
"Project-Id-Version: shadow 4.0.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-11-20 03:28+0100\n"
"Last-Translator: Elian Myftiu <pinguini AT fastwebnet DOT it>\n"
"Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
msgid "malloc(%d) failed\n"
msgstr ""
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr ""
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr ""
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr ""
# Swedish messages for Shadow Copyright (C) 1999 Free Software Foundation,
-# Inc. Kristoffer Brånemyr <ztion@swipnet.se>, 1999.
+# Inc. Kristoffer Brånemyr <ztion@swipnet.se>, 1999.
+# Per Olofsson <pelle@dsv.su.se>, 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: shadow 19990709\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
-"PO-Revision-Date: 1999-08-16 21:20+0100\n"
-"Last-Translator: Kristoffer Brånemyr <ztion@swipnet.se>\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
+"PO-Revision-Date: 2004-12-14 18:21+0100\n"
+"Last-Translator: Per Olofsson <pelle@dsv.su.se>\n"
"Language-Team: sv <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: libmisc/addgrps.c:56
#, c-format
msgid "Warning: unknown group %s\n"
-msgstr "Varning: okänd grupp %s\n"
+msgstr "Varning: okÃ\83¤nd grupp %s\n"
#: libmisc/addgrps.c:67
#, c-format
msgid "Warning: too many groups\n"
-msgstr "Varning: för många grupper\n"
+msgstr "Varning: fÃ\83¶r mÃ\83Â¥nga grupper\n"
#: libmisc/age.c:72
#, c-format
msgid "Your password has expired."
-msgstr "Ditt lösenord har upphört"
+msgstr "Ditt lÃ\83¶senord har upphÃ\83¶rt"
#: libmisc/age.c:75
#, c-format
msgid "Your password is inactive."
-msgstr "Ditt lösenord är inaktivt"
+msgstr "Ditt lÃ\83¶senord Ã\83¤r inaktivt"
#: libmisc/age.c:78
#, c-format
msgid "Your login has expired."
-msgstr "Din användare har upphört."
+msgstr "Din anvÃ\83¤ndare har upphÃ\83¶rt."
#: libmisc/age.c:90
msgid " Contact the system administrator.\n"
-msgstr " Kontakta systemoperatören.\n"
+msgstr " Kontakta systemoperatÃ\83¶ren.\n"
#: libmisc/age.c:93
msgid " Choose a new password.\n"
-msgstr " Välj ett nytt lösenord.\n"
+msgstr " VÃ\83¤lj ett nytt lÃ\83¶senord.\n"
#: libmisc/age.c:169
#, c-format
msgid "Your password will expire in %ld days.\n"
-msgstr "Ditt lösenord upphör om %ld dagar.\n"
+msgstr "Ditt lÃ\83¶senord upphÃ\83¶r om %ld dagar.\n"
#: libmisc/age.c:172
#, c-format
msgid "Your password will expire tomorrow.\n"
-msgstr "Ditt lösenord upphör imorgon.\n"
+msgstr "Ditt lÃ\83¶senord upphÃ\83¶r imorgon.\n"
#: libmisc/age.c:174
#, c-format
msgid "Your password will expire today.\n"
-msgstr "Ditt lösenord upphör idag.\n"
+msgstr "Ditt lÃ\83¶senord upphÃ\83¶r idag.\n"
#: libmisc/chowntty.c:106
#, c-format
#: libmisc/env.c:155
#, c-format
msgid "Environment overflow\n"
-msgstr "Miljön överflödades\n"
+msgstr "MiljÃ\83¶n Ã\83¶verflÃ\83¶dades\n"
#: libmisc/env.c:194
#, c-format
msgid "You may not change $%s\n"
-msgstr "Du får inte ändra $%s\n"
+msgstr "Du fÃ\83Â¥r inte Ã\83¤ndra $%s\n"
#: libmisc/failure.c:229
#, fuzzy, c-format
msgid_plural ""
"%d failures since last login.\n"
"Last was %s on %s.\n"
-msgstr[0] "%d %s sedan förra inloggningen. Den sista var %s på %s.\n"
-msgstr[1] "%d %s sedan förra inloggningen. Den sista var %s på %s.\n"
+msgstr[0] "%d fel sedan fÃ\83¶rra inloggningen. Den senaste var %s pÃ\83Â¥ %s.\n"
+msgstr[1] "%d fel sedan fÃ\83¶rra inloggningen. Den senaste var %s pÃ\83Â¥ %s.\n"
#: libmisc/limits.c:397
#, c-format
msgid "Too many logins.\n"
-msgstr "För många inloggningar.\n"
+msgstr "FÃ\83¶r mÃ\83Â¥nga inloggningar.\n"
#: libmisc/mail.c:61 libmisc/mail.c:76
msgid "You have new mail."
#: libmisc/obscure.c:273 src/passwd.c:181
#, c-format
msgid "Bad password: %s. "
-msgstr "Felaktigt lösenord: %s. "
+msgstr "Felaktigt lÃ\83¶senord: %s. "
#: libmisc/pam_pass.c:38
#, c-format
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) misslyckades\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
-msgstr "Kunde inte allokera rum för konfigureringsinformation.\n"
+msgstr "Kunde inte allokera utrymme fÃ\83¶r konfigureringsinformation.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
-msgstr "konfigurerings fel - okänt object \"%s\" (meddela systemoperatören)\n"
+msgstr "konfigurationsfel - okÃ\83¤nt object \"%s\" (meddela systemoperatÃ\83¶ren)\n"
#: lib/pwauth.c:45 src/newgrp.c:341
msgid "Password: "
-msgstr "Lösenord: "
+msgstr "LÃ\83¶senord: "
#: lib/pwauth.c:47
#, c-format
msgid "%s's Password: "
-msgstr "Lösenord för %s: "
+msgstr "LÃ\83¶senord fÃ\83¶r %s: "
#: src/chage.c:112
-#, c-format
+#, fuzzy, c-format
msgid ""
"Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
" [-I inactive] [-E expire] [-d last_day] user\n"
msgstr ""
-"Användning: chage [-l] [-m min_dagar] [-M max_dagar] [-W varna]\n"
-" [-I inaktiv] [-E utgång] [-d senaste_dag] användare\n"
+"AnvÃ\83¤ndning: %s [-l] [-m min_dagar] [-M max_dagar] [-W varna]\n"
+"\t[-I inaktiv] [-E utgÃ\83Â¥ng] [-d senaste_dag] anvÃ\83¤ndare\n"
#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
#, c-format
msgid "Enter the new value, or press ENTER for the default\n"
-msgstr "Skriv in det nya värdet, eller tryck ENTER för standardvärdet\n"
+msgstr "Skriv in det nya vÃ\83¤rdet, eller tryck ENTER fÃ\83¶r standardvÃ\83¤rdet\n"
#: src/chage.c:149
msgid "Minimum Password Age"
-msgstr "Minsta lösenordsålder"
+msgstr "Minsta lÃ\83¶senordsÃ\83Â¥lder"
#: src/chage.c:155
msgid "Maximum Password Age"
-msgstr "Högsta lösenordsålder"
+msgstr "HÃ\83¶gsta lÃ\83¶senordsÃ\83Â¥lder"
#: src/chage.c:162
msgid "Last Password Change (YYYY-MM-DD)"
-msgstr "Senaste lösenordsändring (Ã\85Ã\85Ã\85Ã\85-MM-DD)"
+msgstr "Senaste lÃ\83¶senordsÃ\83¤ndring (Ã\83Â\85Ã\83Â\85Ã\83Â\85Ã\83Â\85-MM-DD)"
#: src/chage.c:170
msgid "Password Expiration Warning"
-msgstr "Lösenords upphörningsvarning"
+msgstr "LÃ\83¶senords upphÃ\83¶rningsvarning"
#: src/chage.c:176
msgid "Password Inactive"
-msgstr "Lösenord inaktivt"
+msgstr "LÃ\83¶senord inaktivt"
#: src/chage.c:184
msgid "Account Expiration Date (YYYY-MM-DD)"
-msgstr "Kontot upphör (Ã\85Ã\85Ã\85Ã\85-MM-DD)"
+msgstr "Kontot upphÃ\83¶r (Ã\83Â\85Ã\83Â\85Ã\83Â\85Ã\83Â\85-MM-DD)"
#: src/chage.c:231
#, fuzzy, c-format
msgid "Last password change\t\t\t\t\t: "
-msgstr "Senaste lösenordsändring (Ã\85Ã\85Ã\85Ã\85-MM-DD)"
+msgstr "Senaste lÃ\83¶senordsÃ\83¤ndring (Ã\83Â\85Ã\83Â\85Ã\83Â\85Ã\83Â\85-MM-DD)"
#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
#, fuzzy, c-format
#: src/chage.c:244
#, fuzzy, c-format
msgid "Password expires\t\t\t\t\t: "
-msgstr "Lösenordet upphör:\t"
+msgstr "LÃ\83¶senordet upphÃ\83¶r:\t"
#: src/chage.c:260
#, fuzzy, c-format
msgid "Password inactive\t\t\t\t\t: "
-msgstr "Lösenord inaktiv:\t"
+msgstr "LÃ\83¶senord inaktiv:\t"
#: src/chage.c:274
#, fuzzy, c-format
msgid "Account expires\t\t\t\t\t\t: "
-msgstr "Lösenordet upphör:\t"
+msgstr "LÃ\83¶senordet upphÃ\83¶r:\t"
#: src/chage.c:290
#, c-format
msgstr ""
#: src/chage.c:292
-#, c-format
+#, fuzzy, c-format
msgid "Maximum number of days between password change\t\t: %ld\n"
-msgstr ""
+msgstr "Maximala antalet försök överskridna (%d)\n"
#: src/chage.c:294
#, c-format
#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
#, fuzzy, c-format
msgid "%s: permission denied.\n"
-msgstr "%s: tillåtelse nekas\n"
+msgstr "%s: tillÃ\83Â¥telse nekas\n"
#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
-#, fuzzy, c-format
+#, c-format
msgid "%s: PAM authentication failed\n"
-msgstr "%s: fel under tillägning av metod för äkthetsbevisning\n"
+msgstr "%s: PAM-autentisering misslyckades\n"
#: src/chage.c:494 src/chpasswd.c:193
#, c-format
msgid "%s: can't open password file\n"
-msgstr "%s: kan inte öppna lösenordsfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna lÃ\83¶senordsfilen\n"
#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
#, c-format
msgid "%s: unknown user %s\n"
-msgstr "%s: okänd användare %s\n"
+msgstr "%s: okÃ\83¤nd anvÃ\83¤ndare %s\n"
#: src/chage.c:519
#, c-format
msgid "%s: can't lock shadow password file"
-msgstr "%s: kan inte låsa skugglösenordsfilen"
+msgstr "%s: kan inte lÃ\83Â¥sa skugglÃ\83¶senordsfilen"
#: src/chage.c:527
#, c-format
msgid "%s: can't open shadow password file"
-msgstr "%s: kan inte öppna skugglösenordsfilen"
+msgstr "%s: kan inte Ã\83¶ppna skugglÃ\83¶senordsfilen"
#: src/chage.c:587
#, c-format
msgid "Changing the aging information for %s\n"
-msgstr "Ã\84ndrar Ã¥ldringsinformation för %s\n"
+msgstr "Ã\83Â\84ndrar Ã\83Â¥ldringsinformation fÃ\83¶r %s\n"
#: src/chage.c:589
#, c-format
msgid "%s: error changing fields\n"
-msgstr "%s: fel uppstod under byte av fält\n"
+msgstr "%s: fel uppstod under byte av fÃ\83¤lt\n"
#: src/chage.c:613 src/pwunconv.c:137
#, c-format
msgid "%s: can't update password file\n"
-msgstr "%s: kan inte uppdatera lösenordsfilen\n"
+msgstr "%s: kan inte uppdatera lÃ\83¶senordsfilen\n"
#: src/chage.c:636 src/pwunconv.c:132
#, c-format
msgid "%s: can't update shadow password file\n"
-msgstr "%s: kan inte uppdatera skugglösenordsfilen\n"
+msgstr "%s: kan inte uppdatera skugglÃ\83¶senordsfilen\n"
#: src/chage.c:649
#, c-format
msgid "%s: can't rewrite shadow password file\n"
-msgstr "%s: kan inte skriva om skugglösenordsfilen\n"
+msgstr "%s: kan inte skriva om skugglÃ\83¶senordsfilen\n"
#: src/chage.c:693
#, c-format
msgid "%s: can't rewrite password file\n"
-msgstr "%s: kan inte skriva om lösenordsfilen\n"
+msgstr "%s: kan inte skriva om lÃ\83¶senordsfilen\n"
#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
-#, fuzzy, c-format
+#, c-format
msgid "%s: PAM chauthtok failed\n"
-msgstr "%s: kan inte låsa upp filen\n"
+msgstr "%s: PAM-funktionen chauthtok misslyckades\n"
#: src/chfn.c:84
#, c-format
"Usage: %s [-f full_name] [-r room_no] [-w work_ph]\n"
"\t[-h home_ph] [-o other] [user]\n"
msgstr ""
-"Användning: %s [-f hela_namnet] [-r rumsnummer] [-w arbetstele]\n"
-"\t[-h hemtele] [-o övrigt] [användare]\n"
+"%s [-f hela_namnet] [-r rumsnummer] [-w arbetstele]\n"
+"\t[-h hemtele] [-o Ã\83¶vrigt] [anvÃ\83¤ndare]\n"
#: src/chfn.c:89
#, c-format
msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
msgstr ""
-"Användning: %s [-f hela_namnet] [-r rumsnummer] [-w arbetstele] [-h "
+"AnvÃ\83¤ndning: %s [-f hela_namnet] [-r rumsnummer] [-w arbetstele] [-h "
"hemtele]\n"
#: src/chfn.c:142
#: src/chfn.c:162
msgid "Other"
-msgstr "Övrigt"
+msgstr "Ã\83Â\96vrigt"
#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
#, c-format
msgid "%s: Cannot determine your user name.\n"
-msgstr "%s: Kan inte avgöra ditt användarnamn.\n"
+msgstr "%s: Kan inte avgÃ\83¶ra ditt anvÃ\83¤ndarnamn.\n"
#: src/chfn.c:350 src/chsh.c:206
#, c-format
msgid "%s: cannot change user `%s' on NIS client.\n"
-msgstr "%s: kan inte ändra användare \"%s\" på NIS-klienten.\n"
+msgstr "%s: kan inte Ã\83¤ndra anvÃ\83¤ndare \"%s\" pÃ\83Â¥ NIS-klienten.\n"
#: src/chfn.c:357 src/chsh.c:213
#, c-format
msgid "%s: `%s' is the NIS master for this client.\n"
-msgstr "%s: \"%s\" är NIS-mästare för denna klient.\n"
+msgstr "%s: \"%s\" Ã\83¤r NIS-mÃ\83¤stare fÃ\83¶r denna klient.\n"
#: src/chfn.c:382
-#, fuzzy, c-format
+#, c-format
msgid "%s: Permission denied.\n"
-msgstr "%s: tillåtelse nekas\n"
+msgstr "%s: Tillåtelse nekas.\n"
#: src/chfn.c:446
#, c-format
msgid "Changing the user information for %s\n"
-msgstr "Ã\84ndrar användarinformation för %s\n"
+msgstr "Ã\83Â\84ndrar anvÃ\83¤ndarinformation fÃ\83¶r %s\n"
#: src/chfn.c:454
#, c-format
#: src/chfn.c:478
#, c-format
msgid "%s: \"%s\" contains illegal characters\n"
-msgstr "%s: \"%s\" innehåller otillåtna tecken\n"
+msgstr "%s: \"%s\" innehÃ\83Â¥ller otillÃ\83Â¥tna tecken\n"
#: src/chfn.c:491
#, c-format
msgid "%s: fields too long\n"
-msgstr "%s: för långa fält\n"
+msgstr "%s: fÃ\83¶r lÃ\83Â¥nga fÃ\83¤lt\n"
#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
#, c-format
msgid "Cannot change ID to root.\n"
-msgstr "Kan inte ändra ID till root.\n"
+msgstr "Kan inte Ã\83¤ndra ID till root.\n"
#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
#, c-format
msgid "Cannot lock the password file; try again later.\n"
-msgstr "Kan inte låsa lösenordsfilen; försök igen senare.\n"
+msgstr "Kan inte lÃ\83Â¥sa lÃ\83¶senordsfilen; fÃ\83¶rsÃ\83¶k igen senare.\n"
#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
#, c-format
msgid "Cannot open the password file.\n"
-msgstr "Kan inte öppna lösenordsfilen.\n"
+msgstr "Kan inte Ã\83¶ppna lÃ\83¶senordsfilen.\n"
#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
#, c-format
#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
#, c-format
msgid "Error updating the password entry.\n"
-msgstr "Fel under uppdatering av lösenordsnoteringen.\n"
+msgstr "Fel under uppdatering av lÃ\83¶senordsnoteringen.\n"
#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
#, c-format
msgid "Cannot commit password file changes.\n"
-msgstr "Kan inte genomföra ändringar i lösenordsfilen.\n"
+msgstr "Kan inte genomfÃ\83¶ra Ã\83¤ndringar i lÃ\83¶senordsfilen.\n"
#: src/chfn.c:578 src/chsh.c:394
#, c-format
msgid "Cannot unlock the password file.\n"
-msgstr "Kan inte låsa upp lösenordsfilen.\n"
+msgstr "Kan inte lÃ\83Â¥sa upp lÃ\83¶senordsfilen.\n"
#: src/chpasswd.c:71
#, c-format
" -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
"\t\t\tpasswords are not encrypted\n"
msgstr ""
+"Användning: chpasswd [flaggor]\n"
+"\n"
+"Flaggor:\n"
+" -e, --encrypted\tangivna lösenord är krypterade\n"
+" -h, --help\t\tvisa det här meddelandet och avsluta\n"
+" -m, --md5\t\tanvänd MD5-kryptering i stället för DES när\n"
+"\t\t\tde angivna lösenorden inte är krypterade\n"
#: src/chpasswd.c:189
#, c-format
msgid "%s: can't lock password file\n"
-msgstr "%s: kan inte låsa lösenordsfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa lÃ\83¶senordsfilen\n"
#: src/chpasswd.c:201 src/pwconv.c:95
#, c-format
msgid "%s: can't lock shadow file\n"
-msgstr "%s: kan inte låsa skuggfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa skuggfilen\n"
#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
#: src/pwunconv.c:94
#, c-format
msgid "%s: can't open shadow file\n"
-msgstr "%s: kan inte öppna skuggfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna skuggfilen\n"
#: src/chpasswd.c:230 src/newusers.c:434
#, c-format
msgid "%s: line %d: line too long\n"
-msgstr "%s: rad %d: för lång rad\n"
+msgstr "%s: rad %d: fÃ\83¶r lÃ\83Â¥ng rad\n"
#: src/chpasswd.c:250
#, c-format
msgid "%s: line %d: missing new password\n"
-msgstr "%s: rad %d: det nya lösenordet saknas\n"
+msgstr "%s: rad %d: det nya lÃ\83¶senordet saknas\n"
#: src/chpasswd.c:274
#, c-format
msgid "%s: line %d: unknown user %s\n"
-msgstr "%s: rad %d: okänd användare %s\n"
+msgstr "%s: rad %d: okÃ\83¤nd anvÃ\83¤ndare %s\n"
#: src/chpasswd.c:320
#, c-format
msgid "%s: line %d: cannot update password entry\n"
-msgstr "%s: rad %d: kan inte uppdatera lösenordsnoteringen\n"
+msgstr "%s: rad %d: kan inte uppdatera lÃ\83¶senordsnoteringen\n"
#: src/chpasswd.c:337 src/newusers.c:561
#, c-format
msgid "%s: error detected, changes ignored\n"
-msgstr "%s: fel upptäcktes, ändringarna ignorerades\n"
+msgstr "%s: fel upptÃ\83¤cktes, Ã\83¤ndringarna ignorerades\n"
#: src/chpasswd.c:349
#, c-format
#: src/chpasswd.c:357
#, c-format
msgid "%s: error updating password file\n"
-msgstr "%s: fel under uppdatering av lösenordsfilen\n"
+msgstr "%s: fel under uppdatering av lÃ\83¶senordsfilen\n"
#: src/chsh.c:76
#, c-format
msgid "Usage: %s [-s shell] [name]\n"
-msgstr "Användning: %s [-s skal] [namn]\n"
+msgstr "AnvÃ\83¤ndning: %s [-s skal] [namn]\n"
#: src/chsh.c:90
msgid "Login Shell"
#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
#, c-format
msgid "You may not change the shell for %s.\n"
-msgstr "Du får inte ändra skal åt %s.\n"
+msgstr "Du fÃ\83Â¥r inte Ã\83¤ndra skal Ã\83Â¥t %s.\n"
#: src/chsh.c:288
#, c-format
msgid "Changing the login shell for %s\n"
-msgstr "Ã\84ndrar inloggningsskal Ã¥t %s\n"
+msgstr "Ã\83Â\84ndrar inloggningsskal Ã\83Â¥t %s\n"
#: src/chsh.c:300
#, c-format
#: src/chsh.c:305
#, c-format
msgid "%s is an invalid shell.\n"
-msgstr "%s är ett felaktigt skal.\n"
+msgstr "%s Ã\83¤r ett felaktigt skal.\n"
#: src/expiry.c:59
#, c-format
msgid "Usage: expiry {-f|-c}\n"
-msgstr "Användning: expiry {-f|-c}\n"
+msgstr "AnvÃ\83¤ndning: expiry {-f|-c}\n"
#: src/expiry.c:112
#, c-format
msgid "%s: WARNING! Must be set-UID root!\n"
-msgstr "%s: VARNING! Måste vara set-UID root!\n"
+msgstr "%s: VARNING! MÃ\83Â¥ste vara set-UID root!\n"
#: src/expiry.c:122
#, c-format
msgid "%s: unknown user\n"
-msgstr "%s: okänd användare\n"
+msgstr "%s: okÃ\83¤nd anvÃ\83¤ndare\n"
#: src/faillog.c:59
#, c-format
#: src/faillog.c:109
#, c-format
msgid " [%lds lock]"
-msgstr " [%lds låsning]"
+msgstr " [%lds lÃ\83Â¥sning]"
#: src/faillog.c:353 src/lastlog.c:187
#, c-format
msgid "Unknown User: %s\n"
-msgstr "Okänd användare: %s\n"
+msgstr "OkÃ\83¤nd anvÃ\83¤ndare: %s\n"
#: src/gpasswd.c:71
-#, c-format
+#, fuzzy, c-format
msgid "Usage: %s [-r|-R] group\n"
-msgstr "Användning: %s [-r|-R] grupp\n"
+msgstr "AnvÃ\83¤ndning: %s [-r|-R] grupp\n"
#: src/gpasswd.c:72
#, c-format
msgid " %s [-a user] group\n"
-msgstr " %s [-a användare] grupp\n"
+msgstr " %s [-a anvÃ\83¤ndare] grupp\n"
#: src/gpasswd.c:73
#, c-format
msgid " %s [-d user] group\n"
-msgstr " %s [-d användare] grupp\n"
+msgstr " %s [-d anvÃ\83¤ndare] grupp\n"
#: src/gpasswd.c:76
#, c-format
msgid " %s [-A user,...] [-M user,...] group\n"
-msgstr " %s [-A användare,...] [-M användare,...] grupp\n"
+msgstr " %s [-A anvÃ\83¤ndare,...] [-M anvÃ\83¤ndare,...] grupp\n"
#: src/gpasswd.c:78
#, c-format
msgid " %s [-M user,...] group\n"
-msgstr " %s [-M användare,...] grupp\n"
+msgstr " %s [-M anvÃ\83¤ndare,...] grupp\n"
#: src/gpasswd.c:229
#, c-format
msgid "%s: shadow group passwords required for -A\n"
-msgstr "%s: skuggrupplösenord krävs för -A\n"
+msgstr "%s: skuggrupplÃ\83¶senord krÃ\83¤vs fÃ\83¶r -A\n"
#: src/gpasswd.c:280
#, c-format
msgid "Who are you?\n"
-msgstr "Vem är du?\n"
+msgstr "Vem Ã\83¤r du?\n"
#: src/gpasswd.c:299 src/newgrp.c:290
#, c-format
msgid "unknown group: %s\n"
-msgstr "okänd grupp: %s\n"
+msgstr "okÃ\83¤nd grupp: %s\n"
#: src/gpasswd.c:408
#, c-format
msgid "Adding user %s to group %s\n"
-msgstr "Lägger till användare %s till grupp %s\n"
+msgstr "LÃ\83¤gger till anvÃ\83¤ndare %s till grupp %s\n"
#: src/gpasswd.c:426
#, c-format
msgid "Removing user %s from group %s\n"
-msgstr "Tar bort användare %s från grupp %s\n"
+msgstr "Tar bort anvÃ\83¤ndare %s frÃ\83Â¥n grupp %s\n"
#: src/gpasswd.c:439
#, c-format
msgid "%s: unknown member %s\n"
-msgstr "%s: okänd medlem %s\n"
+msgstr "%s: okÃ\83¤nd medlem %s\n"
#: src/gpasswd.c:485
#, c-format
#: src/gpasswd.c:506
#, c-format
msgid "Changing the password for group %s\n"
-msgstr "Ã\84ndrar lösenordet för grupp %s\n"
+msgstr "Ã\83Â\84ndrar lÃ\83¶senordet fÃ\83¶r grupp %s\n"
#: src/gpasswd.c:509
msgid "New Password: "
-msgstr "Nytt lösenord: "
+msgstr "Nytt lÃ\83¶senord: "
#: src/gpasswd.c:514 src/passwd.c:278
msgid "Re-enter new password: "
-msgstr "Skriv in det nya lösenordet igen: "
+msgstr "Skriv in det nya lÃ\83¶senordet igen: "
#: src/gpasswd.c:526
msgid "They don't match; try again"
-msgstr "De matchar inte; försök igen"
+msgstr "De matchar inte; fÃ\83¶rsÃ\83¶k igen"
#: src/gpasswd.c:530
#, c-format
msgid "%s: Try again later\n"
-msgstr "%s: Försök igen senare\n"
+msgstr "%s: FÃ\83¶rsÃ\83¶k igen senare\n"
#: src/gpasswd.c:562
#, c-format
msgid "%s: can't get lock\n"
-msgstr "%s: kan inte låsa\n"
+msgstr "%s: kan inte lÃ\83Â¥sa\n"
#: src/gpasswd.c:568
#, c-format
msgid "%s: can't get shadow lock\n"
-msgstr "%s: kan inte låsa skuggfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa skuggfilen\n"
#: src/gpasswd.c:574
#, c-format
msgid "%s: can't open file\n"
-msgstr "%s: kan inte öppna filen\n"
+msgstr "%s: kan inte Ã\83¶ppna filen\n"
#: src/gpasswd.c:586
#, c-format
#: src/gpasswd.c:612
#, c-format
msgid "%s: can't unlock file\n"
-msgstr "%s: kan inte låsa upp filen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa upp filen\n"
#: src/groupadd.c:97
-#, c-format
+#, fuzzy, c-format
msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
-msgstr "Användning: groupadd [-g gid [-o]] [-f] grupp\n"
+msgstr "AnvÃ\83¤ndning: groupadd [-g gid [-o]] grupp\n"
#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
#, c-format
msgid "%s: error adding new group entry\n"
-msgstr "%s: gick inte att lägga till en ny gruppnotering\n"
+msgstr "%s: gick inte att lÃ\83¤gga till en ny gruppnotering\n"
#: src/groupadd.c:219 src/useradd.c:904
#, c-format
msgid "%s: name %s is not unique\n"
-msgstr "%s: namnet %s är inte unikt\n"
+msgstr "%s: namnet %s Ã\83¤r inte unikt\n"
#: src/groupadd.c:234
#, c-format
msgid "%s: gid %u is not unique\n"
-msgstr "%s: gid %u är inte unikt\n"
+msgstr "%s: gid %u Ã\83¤r inte unikt\n"
#: src/groupadd.c:258
#, c-format
msgstr "%s: kan inte hitta ett unikt gid\n"
#: src/groupadd.c:280 src/groupmod.c:283
-#, c-format
+#, fuzzy, c-format
msgid "%s: %s is not a valid group name\n"
-msgstr "%s: %s är inte ett giltigt gruppnamn\n"
+msgstr "%s: %s Ã\83¤r inte ett giltigt gruppnamn\n"
#: src/groupadd.c:309 src/groupmod.c:308
#, c-format
#: src/groupadd.c:326 src/useradd.c:1099
#, c-format
msgid "%s: -O requires NAME=VALUE\n"
-msgstr "%s: -O kräver NAME=VÃ\84RDE\n"
+msgstr "%s: -O krÃ\83¤ver NAME=VÃ\83Â\84RDE\n"
#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
#: src/userdel.c:245 src/usermod.c:522
#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
#, c-format
msgid "%s: unable to lock group file\n"
-msgstr "%s: kan inte låsa gruppfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa gruppfilen\n"
#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
#, c-format
msgid "%s: unable to open group file\n"
-msgstr "%s: kan inte öppna gruppfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna gruppfilen\n"
#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
#, c-format
msgid "%s: unable to lock shadow group file\n"
-msgstr "%s: kan inte låsa skuggruppfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa skuggruppfilen\n"
#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
#, c-format
msgid "%s: unable to open shadow group file\n"
-msgstr "%s: kan inte öppna skuggruppfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna skuggruppfilen\n"
#: src/groupadd.c:508
#, c-format
msgstr "%s: grupp %s existerar\n"
#: src/groupdel.c:83
-#, c-format
+#, fuzzy, c-format
msgid "Usage: groupdel group\n"
-msgstr "Användning: groupdel grupp\n"
+msgstr "AnvÃ\83¤ndning: groupdel grupp\n"
#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
#, c-format
#: src/groupdel.c:202
#, c-format
msgid "%s: cannot remove user's primary group.\n"
-msgstr "%s: kan inte ta bort användarens primära grupp.\n"
+msgstr "%s: kan inte ta bort anvÃ\83¤ndarens primÃ\83¤ra grupp.\n"
#: src/groupdel.c:290 src/groupmod.c:471
#, c-format
#: src/groupdel.c:303 src/groupmod.c:485
#, c-format
msgid "%s: group %s is a NIS group\n"
-msgstr "%s: grupp %s är en NIS-grupp\n"
+msgstr "%s: grupp %s Ã\83¤r en NIS-grupp\n"
#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
#, c-format
msgid "%s: %s is the NIS master\n"
-msgstr "%s: %s är NIS-mästeren\n"
+msgstr "%s: %s Ã\83¤r NIS-mÃ\83¤steren\n"
#: src/groupmod.c:98
-#, c-format
+#, fuzzy, c-format
msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
-msgstr "Användning: groupmod [-g gid [-o]] [-n namn] grupp\n"
+msgstr "AnvÃ\83¤ndning: groupmod [-g gid [-o]] [-n namn] grupp\n"
#: src/groupmod.c:156
#, c-format
#: src/groupmod.c:242
#, c-format
msgid "%s: %u is not a unique gid\n"
-msgstr "%s: %u är inte ett unikt gid\n"
+msgstr "%s: %u Ã\83¤r inte ett unikt gid\n"
#: src/groupmod.c:272
#, c-format
msgid "%s: %s is not a unique name\n"
-msgstr "%s: %s är inte ett unikt namn\n"
+msgstr "%s: %s Ã\83¤r inte ett unikt namn\n"
#: src/grpck.c:87
#, c-format
msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
-msgstr "Användning: %s [-r] [-s] [grupp [gshadow]]\n"
+msgstr "AnvÃ\83¤ndning: %s [-s] [-r] [grupp [gshadow]]\n"
#: src/grpck.c:89
#, c-format
msgid "Usage: %s [-r] [-s] [group]\n"
-msgstr "Användning: %s [-r] [-s] [grupp]\n"
+msgstr "AnvÃ\83¤ndning: %s [-s] [-r] [grupp]\n"
#: src/grpck.c:107 src/pwck.c:108
msgid "No"
#: src/grpck.c:191 src/pwck.c:175
#, c-format
msgid "%s: -s and -r are incompatibile\n"
-msgstr ""
+msgstr "%s: -s och -r är inkompatibla\n"
#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
#, c-format
msgid "%s: cannot lock file %s\n"
-msgstr "%s: kan inte låsa filen %s\n"
+msgstr "%s: kan inte lÃ\83Â¥sa filen %s\n"
#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
#: src/pwck.c:248
#, c-format
msgid "%s: cannot open file %s\n"
-msgstr "%s: kan inte öppna filen %s\n"
+msgstr "%s: kan inte Ã\83¶ppna filen %s\n"
#: src/grpck.c:307
#, c-format
#: src/grpck.c:413
#, c-format
msgid "group %s: no user %s\n"
-msgstr "grupp %s: användaren %s finns inte\n"
+msgstr "grupp %s: anvÃ\83¤ndaren %s finns inte\n"
#: src/grpck.c:415 src/grpck.c:585
#, c-format
#: src/grpck.c:553
#, c-format
msgid "shadow group %s: no administrative user %s\n"
-msgstr "skuggrupp %s: finns ingen administrativ användare %s\n"
+msgstr "skuggrupp %s: finns ingen administrativ anvÃ\83¤ndare %s\n"
#: src/grpck.c:555
#, c-format
#: src/grpck.c:583
#, c-format
msgid "shadow group %s: no user %s\n"
-msgstr "skuggrupp %s: finns ingen användare %s\n"
+msgstr "skuggrupp %s: finns ingen anvÃ\83¤ndare %s\n"
#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
#, c-format
#: src/grpck.c:640 src/pwck.c:606
#, c-format
msgid "%s: the files have been updated\n"
-msgstr "%s: filerna är uppdaterade\n"
+msgstr "%s: filerna Ã\83¤r uppdaterade\n"
#: src/grpck.c:641 src/pwck.c:607
#, c-format
msgid "%s: no changes\n"
-msgstr "%s: inga ändringar\n"
+msgstr "%s: inga Ã\83¤ndringar\n"
#: src/grpconv.c:60 src/grpunconv.c:56
#, c-format
msgid "%s: can't lock group file\n"
-msgstr "%s: kan inte låsa gruppfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa gruppfilen\n"
#: src/grpconv.c:65 src/grpunconv.c:61
#, c-format
msgid "%s: can't open group file\n"
-msgstr "%s: kan inte öppna gruppfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna gruppfilen\n"
#: src/grpconv.c:70 src/grpunconv.c:66
#, c-format
msgid "%s: can't lock shadow group file\n"
-msgstr "%s: kan inte låsa skuggruppfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa skuggruppfilen\n"
#: src/grpconv.c:75 src/grpunconv.c:71
#, c-format
msgid "%s: can't open shadow group file\n"
-msgstr "%s: kan inte öppna skuggruppfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna skuggruppfilen\n"
#: src/grpconv.c:92
#, c-format
#: src/grpconv.c:130 src/pwconv.c:153
#, c-format
msgid "%s: can't update shadow entry for %s\n"
-msgstr "%s: kan inte uppdatera skuggnoteringen för %s\n"
+msgstr "%s: kan inte uppdatera skuggnoteringen fÃ\83¶r %s\n"
#: src/grpconv.c:140 src/grpunconv.c:88
#, c-format
msgid "%s: can't update entry for group %s\n"
-msgstr "%s: kan inte uppdatera noteringen för gruppen %s\n"
+msgstr "%s: kan inte uppdatera noteringen fÃ\83¶r gruppen %s\n"
#: src/grpconv.c:147 src/grpunconv.c:96
#, c-format
msgstr "%s: kan inte ta bort skuggruppfilen\n"
#: src/id.c:53
-#, c-format
+#, fuzzy, c-format
msgid "Usage: id [-a]\n"
-msgstr "Användning: id [-a]\n"
+msgstr "AnvÃ\83¤ndning: id [-a]\n"
#: src/id.c:55
-#, c-format
+#, fuzzy, c-format
msgid "Usage: id\n"
-msgstr "Användning: id\n"
+msgstr "AnvÃ\83¤ndning: id\n"
#: src/id.c:169
#, c-format
msgstr " grupper="
#: src/lastlog.c:64
-#, c-format
+#, fuzzy, c-format
msgid ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
+"Användning: chpasswd [flaggor]\n"
+"\n"
+"Flaggor:\n"
+" -e, --encrypted\tangivna lösenord är krypterade\n"
+" -h, --help\t\tvisa det här meddelandet och avsluta\n"
+" -m, --md5\t\tanvänd MD5-kryptering i stället för DES när\n"
+"\t\t\tde angivna lösenorden inte är krypterade\n"
#: src/lastlog.c:90
#, c-format
msgid "Username Port From Latest\n"
-msgstr "Användarnamn Port Från Senaste\n"
+msgstr "AnvÃ\83¤ndarnamn Port FrÃ\83Â¥n Senaste\n"
#: src/lastlog.c:92
#, c-format
msgid "Username Port Latest\n"
-msgstr "Användarnamn Port Senaste\n"
+msgstr "AnvÃ\83¤ndarnamn Port Senaste\n"
#: src/lastlog.c:107
msgid "**Never logged in**"
msgstr "**Aldrig inloggad**"
#: src/login.c:156
-#, c-format
+#, fuzzy, c-format
msgid "Usage: %s [-p] [name]\n"
-msgstr "Användning: %s [-p] [namn]\n"
+msgstr "AnvÃ\83¤ndning: %s [-p] [namn]\n"
#: src/login.c:159
#, c-format
msgid " %s [-p] [-h host] [-f name]\n"
-msgstr " %s [-p] [-h värd] [-f namn]\n"
+msgstr " %s [-p] [-h vÃ\83¤rd] [-f namn]\n"
#: src/login.c:161
#, c-format
msgid " %s [-p] -r host\n"
-msgstr " %s [-p] -r värd\n"
+msgstr " %s [-p] -r vÃ\83¤rd\n"
#: src/login.c:198
#, c-format
"System closed for routine maintenance\n"
msgstr ""
"\n"
-"Systemet är stängt för rutinunderhåll\n"
+"Systemet Ã\83¤r stÃ\83¤ngt fÃ\83¶r rutinunderhÃ\83Â¥ll\n"
#: src/login.c:244
#, c-format
"[Disconnect bypassed -- root login allowed.]\n"
msgstr ""
"\n"
-"[Nerkoppling kringgicks -- root inloggning tillåten.]\n"
+"[Nerkoppling kringgicks -- root inloggning tillÃ\83Â¥ten.]\n"
#: src/login.c:297
#, c-format
"Login timed out after %d seconds.\n"
msgstr ""
"\n"
-"Inloggningen avbröts efter %d sekunders inaktivitet.\n"
+"Inloggningen avbrÃ\83¶ts efter %d sekunders inaktivitet.\n"
#: src/login.c:565
#, c-format
msgid " on `%.100s' from `%.200s'"
-msgstr " på \"%.100s\" från \"%.200s\""
+msgstr " pÃ\83Â¥ \"%.100s\" frÃ\83Â¥n \"%.200s\""
#: src/login.c:568
#, c-format
msgid " on `%.100s'"
-msgstr " på \"%.100s\""
+msgstr " pÃ\83Â¥ \"%.100s\""
#: src/login.c:722
#, c-format
"%s login: "
msgstr ""
"\n"
-"%s användare: "
+"%s anvÃ\83¤ndare: "
#: src/login.c:879 src/sulogin.c:203
msgid "Login incorrect"
#: src/login.c:996
msgid "Warning: login re-enabled after temporary lockout.\n"
-msgstr "Varning: inloggning på nytt aktiv efter den temporära utelåsningen.\n"
+msgstr ""
+"Varning: inloggning på nytt aktiv efter den temporära utelåsningen.\n"
#: src/login.c:1010
#, c-format
msgid "Last login: %s on %s"
-msgstr "Senaste inloggning: %s på %s"
+msgstr "Senaste inloggning: %s pÃ\83Â¥ %s"
#: src/login.c:1013
#, c-format
msgid "Last login: %.19s on %s"
-msgstr "Senaste inloggning: %.19s på %s"
+msgstr "Senaste inloggning: %.19s pÃ\83Â¥ %s"
#: src/login.c:1018
#, c-format
msgid " from %.*s"
-msgstr " från %.*s"
+msgstr " frÃ\83Â¥n %.*s"
#: src/mkpasswd.c:47
#, c-format
msgid "%s: no DBM database on system - no action performed\n"
-msgstr "%s: ingen DBM-databas på systemet - ingen åtgärd genomfördes\n"
+msgstr "%s: ingen DBM-databas pÃ\83Â¥ systemet - ingen Ã\83Â¥tgÃ\83¤rd genomfÃ\83¶rdes\n"
#: src/mkpasswd.c:231 src/mkpasswd.c:236
#, c-format
msgid "%s: cannot overwrite file %s\n"
-msgstr "%s: kan inte skriva över filen %s\n"
+msgstr "%s: kan inte skriva Ã\83¶ver filen %s\n"
#: src/mkpasswd.c:251
#, c-format
msgid "%s: cannot open DBM files for %s\n"
-msgstr "%s: kan inte öppna DBM-filer för %s\n"
+msgstr "%s: kan inte Ã\83¶ppna DBM-filer fÃ\83¶r %s\n"
#: src/mkpasswd.c:286
#, fuzzy, c-format
msgid "%s: the line beginning with %.16s... is too long\n"
-msgstr "%s: början med "
+msgstr "%s: bÃ\83¶rjan med "
#: src/mkpasswd.c:313
#, c-format
#: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
#, fuzzy, c-format
msgid "adding record for name %s\n"
-msgstr "lägger till notering för namn "
+msgstr "lÃ\83¤gger till notering fÃ\83¶r namn "
#: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
#, fuzzy, c-format
msgid "%s: error adding record for %s\n"
-msgstr "%s: fel under tillägg av notering för "
+msgstr "%s: fel under tillÃ\83¤gg av notering fÃ\83¶r "
#: src/mkpasswd.c:376
#, c-format
msgid "added %d entries, longest was %d\n"
-msgstr "lade till %d noteringar, den längsta var %d\n"
+msgstr "lade till %d noteringar, den lÃ\83¤ngsta var %d\n"
#: src/mkpasswd.c:389
#, c-format
msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
-msgstr "Användning: %s [-vf] [-p|g|sp|sg] fil\n"
+msgstr "AnvÃ\83¤ndning: %s [-vf] [-p|g|sp|sg] fil\n"
#: src/mkpasswd.c:391
#, c-format
msgid "Usage: %s [-vf] [-p|g|sp] file\n"
-msgstr "Användning: %s [-vf] [-p|g|sp] fil\n"
+msgstr "AnvÃ\83¤ndning: %s [-vf] [-p|g|sp] fil\n"
#: src/mkpasswd.c:394
#, c-format
msgid "Usage: %s [-vf] [-p|g] file\n"
-msgstr "Användning: %s [-vf] [-p|g] fil\n"
+msgstr "AnvÃ\83¤ndning: %s [-vf] [-p|g] fil\n"
#: src/newgrp.c:61
-#, c-format
+#, fuzzy, c-format
msgid "Usage: newgrp [-] [group]\n"
-msgstr "Användning: newgrp [-] [grupp]\n"
+msgstr "AnvÃ\83¤ndning: newgrp [-] [grupp]\n"
#: src/newgrp.c:63
-#, c-format
+#, fuzzy, c-format
msgid "Usage: sg group [[-c] command]\n"
-msgstr "Användning: sg grupp [[-c] kommando]\n"
+msgstr "AnvÃ\83¤ndning: sg grupp [[-c] kommando]\n"
#: src/newgrp.c:131
#, c-format
msgid "unknown uid: %u\n"
-msgstr "okänt uid: %u\n"
+msgstr "okÃ\83¤nt uid: %u\n"
#: src/newgrp.c:213
#, c-format
msgid "unknown gid: %lu\n"
-msgstr "okänt gid: %lu\n"
+msgstr "okÃ\83¤nt gid: %lu\n"
#: src/newgrp.c:358 src/newgrp.c:367
msgid "Sorry.\n"
-msgstr "Tyvärr.\n"
+msgstr "TyvÃ\83¤rr.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
-msgstr "för många grupper\n"
+msgstr "fÃ\83¶r mÃ\83Â¥nga grupper\n"
#: src/newusers.c:78
#, c-format
msgid "Usage: %s [input]\n"
-msgstr "Användning: %s [indata]\n"
+msgstr "AnvÃ\83¤ndning: %s [indata]\n"
#: src/newusers.c:382
#, c-format
msgid "%s: can't lock /etc/passwd.\n"
-msgstr "%s: kan inte låsa /etc/passwd.\n"
+msgstr "%s: kan inte lÃ\83Â¥sa /etc/passwd.\n"
#: src/newusers.c:394
#, c-format
msgid "%s: can't lock files, try again later\n"
-msgstr "%s: kan inte låsa filerna, försök igen senare\n"
+msgstr "%s: kan inte lÃ\83Â¥sa filerna, fÃ\83¶rsÃ\83¶k igen senare\n"
#: src/newusers.c:409
#, c-format
msgid "%s: can't open files\n"
-msgstr "%s: kan inte öppna filerna\n"
+msgstr "%s: kan inte Ã\83¶ppna filerna\n"
#: src/newusers.c:454
#, c-format
#: src/newusers.c:502
#, c-format
msgid "%s: line %d: cannot find user %s\n"
-msgstr "%s: rad %d: kan inte hitta användaren %s\n"
+msgstr "%s: rad %d: kan inte hitta anvÃ\83¤ndaren %s\n"
#: src/newusers.c:511
#, c-format
msgid "%s: line %d: can't update password\n"
-msgstr "%s: rad %d: kan inte uppdatera lösenordet\n"
+msgstr "%s: rad %d: kan inte uppdatera lÃ\83¶senordet\n"
#: src/newusers.c:529
#, c-format
msgstr "%s: kunde inte uppdatera filerna\n"
#: src/passwd.c:154
-#, c-format
+#, fuzzy, c-format
msgid "Usage: %s [-f|-s] [name]\n"
-msgstr "Användning: %s [-f|-s] [namn]\n"
+msgstr "AnvÃ\83¤ndning: %s [-f|-s] [namn]\n"
#: src/passwd.c:158
#, c-format
msgid " %s [-x max] [-n min] [-w warn] [-i inact] name\n"
-msgstr " %s [-x högst] [-n minst] [-w varna] [-i inaktiv] namn\n"
+msgstr " %s [-x hÃ\83¶gst] [-n minst] [-w varna] [-i inaktiv] namn\n"
#: src/passwd.c:160
#, c-format
msgid " %s {-l|-u|-d|-S|-e} name\n"
-msgstr " %s {-l|-u|-d|-S|-e} namn\n"
+msgstr " %s {-l|-u|-d|-S|-e} namn\n"
#: src/passwd.c:214
msgid "Old password: "
-msgstr "Förra lösenordet: "
+msgstr "FÃ\83¶rra lÃ\83¶senordet: "
#: src/passwd.c:223
#, c-format
msgid "Incorrect password for `%s'\n"
-msgstr "Felaktigt lösenord för \"%s\"\n"
+msgstr "Felaktigt lÃ\83¶senord fÃ\83¶r \"%s\"\n"
#: src/passwd.c:247
#, c-format
"Enter the new password (minimum of %d, maximum of %d characters)\n"
"Please use a combination of upper and lower case letters and numbers.\n"
msgstr ""
-"Skriv in det nya lösenordet (minst %d, högst %d tecken)\n"
-"Var god använd en kombination av versaler, gemener och siffror.\n"
+"Skriv in det nya lÃ\83¶senordet (minst %d, hÃ\83¶gst %d tecken)\n"
+"Var god anvÃ\83¤nd en kombination av versaler, gemener och siffror.\n"
#: src/passwd.c:253
msgid "New password: "
-msgstr "Nytt lösenord: "
+msgstr "Nytt lÃ\83¶senord: "
#: src/passwd.c:263
#, c-format
msgid "Try again.\n"
-msgstr "Försök igen.\n"
+msgstr "FÃ\83¶rsÃ\83¶k igen.\n"
#: src/passwd.c:274
#, c-format
"Warning: weak password (enter it again to use it anyway).\n"
msgstr ""
"\n"
-"Varning: svagt lösenord (skriv in det igen för att använda det ändå).\n"
+"Varning: svagt lÃ\83¶senord (skriv in det igen fÃ\83¶r att anvÃ\83¤nda det Ã\83¤ndÃ\83Â¥).\n"
#: src/passwd.c:283
#, c-format
msgid "They don't match; try again.\n"
-msgstr "De matchar inte; försök igen.\n"
+msgstr "De matchar inte; fÃ\83¶rsÃ\83¶k igen.\n"
#: src/passwd.c:360 src/passwd.c:377
#, c-format
msgid "The password for %s cannot be changed.\n"
-msgstr "Lösenordet för %s kan inte bytas.\n"
+msgstr "LÃ\83¶senordet fÃ\83¶r %s kan inte bytas.\n"
#: src/passwd.c:390
#, c-format
msgid "Sorry, the password for %s cannot be changed yet.\n"
-msgstr "Tyvärr, lösenordet för %s kan inte ändras än.\n"
+msgstr "TyvÃ\83¤rr, lÃ\83¶senordet fÃ\83¶r %s kan inte Ã\83¤ndras Ã\83¤n.\n"
#: src/passwd.c:472
#, c-format
msgid "%s: out of memory\n"
-msgstr "%s: slut på minne\n"
+msgstr "%s: slut pÃ\83Â¥ minne\n"
#: src/passwd.c:701
#, c-format
#: src/passwd.c:786
#, c-format
msgid "%s: repository %s not supported\n"
-msgstr "%s: förvaringsplatsen %s stöds ej\n"
+msgstr "%s: fÃ\83¶rvaringsplatsen %s stÃ\83¶ds ej\n"
#: src/passwd.c:884
-#, fuzzy, c-format
+#, c-format
msgid "%s: You may not view or modify password information for %s.\n"
-msgstr "Du får inte ändra lösenordet för %s.\n"
+msgstr "%s: Du fÃ\83Â¥r inte lÃ\83¤sa eller Ã\83¤ndra lÃ\83¶senordsinformation fÃ\83¶r %s.\n"
#: src/passwd.c:934
#, c-format
msgid "Changing password for %s\n"
-msgstr "Ã\84ndrar lösenord för %s\n"
+msgstr "Ã\83Â\84ndrar lÃ\83¶senord fÃ\83¶r %s\n"
#: src/passwd.c:938
#, c-format
msgid "The password for %s is unchanged.\n"
-msgstr "Lösenordet för %s är oförändrat.\n"
+msgstr "LÃ\83¶senordet fÃ\83¶r %s Ã\83¤r ofÃ\83¶rÃ\83¤ndrat.\n"
#: src/passwd.c:987
#, c-format
msgid "Password changed.\n"
-msgstr "Lösenordet ändrat.\n"
+msgstr "LÃ\83¶senordet Ã\83¤ndrat.\n"
#: src/pwck.c:87
#, c-format
msgid "Usage: %s [-q] [-r] [-s] [passwd [shadow]]\n"
-msgstr "Användning: %s [-q] [-r] [-s] [passwd [shadow]]\n"
+msgstr "AnvÃ\83¤ndning: %s [-q] [-r] [-s] [passwd [shadow]]\n"
#: src/pwck.c:90
#, c-format
msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
-msgstr "Användning: %s [-q] [-r] [-s] [passwd]\n"
+msgstr "AnvÃ\83¤ndning: %s [-q] [-r] [-s] [passwd]\n"
#: src/pwck.c:292
#, c-format
msgid "invalid password file entry\n"
-msgstr "felaktig notering i lösenordsfilen\n"
+msgstr "felaktig notering i lÃ\83¶senordsfilen\n"
#: src/pwck.c:354
msgid "duplicate password entry\n"
-msgstr "dubblett av lösenords notering\n"
+msgstr "dubblett av lÃ\83¶senords notering\n"
#: src/pwck.c:370
#, c-format
msgid "invalid user name '%s'\n"
-msgstr "ogiltigt användarnamn '%s'\n"
+msgstr "ogiltigt anvÃ\83¤ndarnamn '%s'\n"
#: src/pwck.c:384
#, c-format
msgid "user %s: no group %u\n"
-msgstr "användare %s: ingen grupp %u\n"
+msgstr "anvÃ\83¤ndare %s: ingen grupp %u\n"
#: src/pwck.c:400
#, c-format
msgid "user %s: directory %s does not exist\n"
-msgstr "användare %s: katalogen %s finns inte\n"
+msgstr "anvÃ\83¤ndare %s: katalogen %s finns inte\n"
#: src/pwck.c:416
#, c-format
msgid "user %s: program %s does not exist\n"
-msgstr "användare %s: programmet %s finns inte\n"
+msgstr "anvÃ\83¤ndare %s: programmet %s finns inte\n"
#: src/pwck.c:452
#, c-format
msgid "invalid shadow password file entry\n"
-msgstr "felaktig notering i skugglösenordsfilen\n"
+msgstr "felaktig notering i skugglÃ\83¶senordsfilen\n"
#: src/pwck.c:514
msgid "duplicate shadow password entry\n"
-msgstr "dubblett av notering i skugglösenordsfilen\n"
+msgstr "dubblett av notering i skugglÃ\83¶senordsfilen\n"
#: src/pwck.c:538
msgid "no matching password file entry\n"
-msgstr "ingen matchande notering i lösenordsfilen\n"
+msgstr "ingen matchande notering i lÃ\83¶senordsfilen\n"
#: src/pwck.c:556
#, c-format
msgid "user %s: last password change in the future\n"
-msgstr "användare %s: senaste lösenordsändring i framtiden\n"
+msgstr "anvÃ\83¤ndare %s: senaste lÃ\83¶senordsÃ\83¤ndring i framtiden\n"
#: src/pwconv.c:85 src/pwunconv.c:79
#, c-format
msgid "%s: can't lock passwd file\n"
-msgstr "%s: kan inte låsa lösenordsfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa lÃ\83¶senordsfilen\n"
#: src/pwconv.c:90 src/pwunconv.c:84
#, c-format
msgid "%s: can't open passwd file\n"
-msgstr "%s: kan inte öppna lösenordsfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna lÃ\83¶senordsfilen\n"
#: src/pwconv.c:118
#, c-format
msgid "%s: can't remove shadow entry for %s\n"
-msgstr "%s: kan inte ta bort notering i skugglösenordsfilen för %s\n"
+msgstr "%s: kan inte ta bort notering i skugglÃ\83¶senordsfilen fÃ\83¶r %s\n"
#: src/pwconv.c:163
#, c-format
msgid "%s: can't update passwd entry for %s\n"
-msgstr "%s: kan inte uppdatera noteringen i lösenordsfilen för %s\n"
+msgstr "%s: kan inte uppdatera noteringen i lÃ\83¶senordsfilen fÃ\83¶r %s\n"
#: src/pwconv.c:170
#, c-format
#: src/pwconv.c:174
#, c-format
msgid "%s: can't update passwd file\n"
-msgstr "%s: kan inte uppdatera lösenordsfilen\n"
+msgstr "%s: kan inte uppdatera lÃ\83¶senordsfilen\n"
#: src/pwunconv.c:124
#, c-format
msgid "%s: can't update entry for user %s\n"
-msgstr "%s: kan inte uppdatera noteringen för användaren %s\n"
+msgstr "%s: kan inte uppdatera noteringen fÃ\83¶r anvÃ\83¤ndaren %s\n"
#: src/pwunconv.c:143
#, c-format
msgid "%s: can't delete shadow password file\n"
-msgstr "%s: kan inte ta bort skugglösenordsfilen\n"
+msgstr "%s: kan inte ta bort skugglÃ\83¶senordsfilen\n"
#: src/su.c:132
msgid "Sorry."
-msgstr "Tyvärr."
+msgstr "TyvÃ\83¤rr."
#: src/su.c:320
#, c-format
msgid "%s: must be run from a terminal\n"
-msgstr "%s: måste köras från en terminal\n"
+msgstr "%s: mÃ\83Â¥ste kÃ\83¶ras frÃ\83Â¥n en terminal\n"
#: src/su.c:419
#, c-format
#: src/su.c:447
#, c-format
msgid "Unknown id: %s\n"
-msgstr "Okänt id: %s\n"
+msgstr "OkÃ\83¤nt id: %s\n"
#: src/su.c:484 src/su.c:500
#, c-format
msgid "You are not authorized to su %s\n"
-msgstr "Du har inte tillåtelse att köra su till %s\n"
+msgstr "Du har inte tillÃ\83Â¥telse att kÃ\83¶ra su till %s\n"
#: src/su.c:495
msgid "(Enter your own password.)"
-msgstr "(Skriv in ditt eget lösenord.)"
+msgstr "(Skriv in ditt eget lÃ\83¶senord.)"
#: src/su.c:527
#, c-format
#: src/suauth.c:104
#, c-format
msgid "Access to su to that account DENIED.\n"
-msgstr "Du har inte behörighet att köra su till det kontot.\n"
+msgstr "Du har inte behÃ\83¶righet att kÃ\83¶ra su till det kontot.\n"
#: src/suauth.c:112
#, c-format
msgid "Password authentication bypassed.\n"
-msgstr "Hoppade över lösenordskontroll.\n"
+msgstr "Hoppade Ã\83¶ver lÃ\83¶senordskontroll.\n"
#: src/suauth.c:121
#, c-format
msgid "Please enter your OWN password as authentication.\n"
-msgstr "Var god skriv in ditt EGET lösenord som äkthetsbevis.\n"
+msgstr "Var god skriv in ditt EGET lÃ\83¶senord som Ã\83¤kthetsbevis.\n"
#: src/sulogin.c:118
#, c-format
msgid "No password file\n"
-msgstr "Ingen lösenordsfil\n"
+msgstr "Ingen lÃ\83¶senordsfil\n"
#: src/sulogin.c:160
#, c-format
msgid "No password entry for 'root'\n"
-msgstr "Ingen lösenordsnotering för \"root\"\n"
+msgstr "Ingen lÃ\83¶senordsnotering fÃ\83¶r \"root\"\n"
#: src/sulogin.c:175
msgid ""
"(or give root password for system maintenance):"
msgstr ""
"\n"
-"Skriv control-d för att fortsätta med den normala uppstarten,\n"
-"(eller skriv in lösenordet för root för systemunderhåll):"
+"Skriv control-d fÃ\83¶r att fortsÃ\83¤tta med den normala uppstarten,\n"
+"(eller skriv in lÃ\83¶senordet fÃ\83¶r root fÃ\83¶r systemunderhÃ\83Â¥ll):"
#: src/sulogin.c:210
msgid "Entering System Maintenance Mode\n"
-msgstr "Går in i systemunderhållsläge\n"
+msgstr "GÃ\83Â¥r in i systemunderhÃ\83Â¥llslÃ\83¤ge\n"
#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
#, c-format
#: src/useradd.c:298
#, c-format
msgid "%s: unknown gid %s\n"
-msgstr "%s: okänt gid %s\n"
+msgstr "%s: okÃ\83¤nt gid %s\n"
#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
#: src/usermod.c:814
#, c-format
msgid "%s: unknown group %s\n"
-msgstr "%s: okänd grupp %s\n"
+msgstr "%s: okÃ\83¤nd grupp %s\n"
#: src/useradd.c:418
#, c-format
msgid "%s: cannot create new defaults file\n"
-msgstr "%s: kan inte skapa en ny standardfil\n"
+msgstr "%s: kan inte skapa en ny defaults-fil\n"
#: src/useradd.c:423
#, c-format
msgid "%s: cannot open new defaults file\n"
-msgstr "%s: kan inte skapa en ny standardfil\n"
+msgstr "%s: kan inte öppna den nya defaults-filen\n"
#: src/useradd.c:515 src/useradd.c:526
#, c-format
#: src/useradd.c:619 src/usermod.c:248
#, c-format
msgid "%s: group `%s' is a NIS group.\n"
-msgstr "%s: grupp \"%s\" är en NIS-grupp.\n"
+msgstr "%s: grupp \"%s\" Ã\83¤r en NIS-grupp.\n"
#: src/useradd.c:628 src/usermod.c:257
#, c-format
msgid "%s: too many groups specified (max %d).\n"
-msgstr "%s: för många grupper speciferade (max %d).\n"
+msgstr "%s: fÃ\83¶r mÃ\83Â¥nga grupper speciferade (max %d).\n"
#: src/useradd.c:660
-#, c-format
+#, fuzzy, c-format
msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
-msgstr "Användning: useradd [-u uid [-o]] [-g grupp] [-G grupp,...] \n"
+msgstr "AnvÃ\83¤ndning: %s [-u uid [-o]] [-g grupp] [-G grupp,...] \n"
#: src/useradd.c:663
-#, c-format
+#, fuzzy, c-format
msgid " [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
-msgstr " [-d hem] [-s skal] [-c kommentar] [-m [-k mall]]\n"
+msgstr "\t\t [-d hem] [-s skal] [-c kommentar] [-m [-k mall]]\n"
#: src/useradd.c:665 src/useradd.c:671
-#, c-format
+#, fuzzy, c-format
msgid " [-f inactive] [-e expire]\n"
-msgstr " [-f inaktiv] [-e upphör]\n"
+msgstr "\t\t[-f inaktiv] [-e utgång]\n"
#: src/useradd.c:667
-#, c-format
+#, fuzzy, c-format
msgid " [-p passwd] name\n"
-msgstr " [-p passwd] namn\n"
+msgstr "[-p passwd] namn\n"
#: src/useradd.c:669
-#, c-format
+#, fuzzy, c-format
msgid " useradd -D [-g group] [-b base] [-s shell]\n"
-msgstr " useradd -D [-g grupp] [-b bas] [-s skal]\n"
+msgstr " %s -D [-g grupp] [-b bas] [-s skal]\n"
#: src/useradd.c:756 src/usermod.c:444
#, c-format
msgid "%s: error locking group file\n"
-msgstr "%s: fel under låsning av gruppfilen\n"
+msgstr "%s: fel under lÃ\83Â¥sning av gruppfilen\n"
#: src/useradd.c:760 src/usermod.c:449
#, c-format
msgid "%s: error opening group file\n"
-msgstr "%s: fel under öppning av gruppfilen\n"
+msgstr "%s: fel under Ã\83¶ppning av gruppfilen\n"
#: src/useradd.c:766 src/usermod.c:542
#, c-format
msgid "%s: error locking shadow group file\n"
-msgstr "%s: fel under låsning av skuggruppfilen\n"
+msgstr "%s: fel under lÃ\83Â¥sning av skuggruppfilen\n"
#: src/useradd.c:771 src/usermod.c:548
#, c-format
msgid "%s: error opening shadow group file\n"
-msgstr "%s: fel under öppning av skuggruppfilen\n"
+msgstr "%s: fel under Ã\83¶ppning av skuggruppfilen\n"
#: src/useradd.c:909
#, c-format
msgid "%s: uid %u is not unique\n"
-msgstr "%s: uid %u är inte unikt\n"
+msgstr "%s: uid %u Ã\83¤r inte unikt\n"
#: src/useradd.c:939
#, c-format
#: src/useradd.c:1028
#, c-format
msgid "%s: shadow passwords required for -e\n"
-msgstr "%s: skugglösenord krävs för -e\n"
+msgstr "%s: skugglÃ\83¶senord krÃ\83¤vs fÃ\83¶r -e\n"
#: src/useradd.c:1044
#, c-format
msgid "%s: shadow passwords required for -f\n"
-msgstr "%s: skugglösenord krävs för -f\n"
+msgstr "%s: skugglÃ\83¶senord krÃ\83¤vs fÃ\83¶r -f\n"
#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
#: src/usermod.c:873
#, c-format
msgid "%s: invalid field `%s'\n"
-msgstr "%s: felaktigt fält \"%s\"\n"
+msgstr "%s: felaktigt fÃ\83¤lt \"%s\"\n"
#: src/useradd.c:1122
#, c-format
#: src/useradd.c:1163
#, c-format
msgid "%s: invalid user name '%s'\n"
-msgstr "%s: felaktigt användar namn '%s'\n"
+msgstr "%s: felaktigt anvÃ\83¤ndar namn '%s'\n"
#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
#, c-format
msgid "%s: cannot rewrite password file\n"
-msgstr "%s: kan inte skriva om lösenordsfilen\n"
+msgstr "%s: kan inte skriva om lÃ\83¶senordsfilen\n"
#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
#, c-format
msgid "%s: cannot rewrite shadow password file\n"
-msgstr "%s: kan inte skriva om skugglösenordsfilen\n"
+msgstr "%s: kan inte skriva om skugglÃ\83¶senordsfilen\n"
#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
#, c-format
msgid "%s: unable to lock password file\n"
-msgstr "%s: kan inte låsa lösenordsfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa lÃ\83¶senordsfilen\n"
#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
#, c-format
msgid "%s: unable to open password file\n"
-msgstr "%s: kan inte öppna lösenordsfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna lÃ\83¶senordsfilen\n"
#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
#, c-format
msgid "%s: cannot lock shadow password file\n"
-msgstr "%s: kan inte låsa skugglösenordsfilen\n"
+msgstr "%s: kan inte lÃ\83Â¥sa skugglÃ\83¶senordsfilen\n"
#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
#, c-format
msgid "%s: cannot open shadow password file\n"
-msgstr "%s: kan inte öppna skugglösenordsfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna skugglÃ\83¶senordsfilen\n"
#: src/useradd.c:1354
#, c-format
msgid "%s: error adding new password entry\n"
-msgstr "%s: fel under tilläggning av ny lösenordsnotering\n"
+msgstr "%s: fel under tillÃ\83¤ggning av ny lÃ\83¶senordsnotering\n"
#: src/useradd.c:1365 src/usermod.c:1063
#, c-format
msgid "%s: error adding new shadow password entry\n"
-msgstr "%s: fel under tilläggning av ny skugglösenordsnotering\n"
+msgstr "%s: fel under tillÃ\83¤ggning av ny skugglÃ\83¶senordsnotering\n"
#: src/useradd.c:1393
#, c-format
#: src/useradd.c:1446
#, fuzzy, c-format
msgid "Can't create mail spool for user %s.\n"
-msgstr "%s: kan inte uppdatera noteringen för användaren %s\n"
+msgstr "%s: kan inte uppdatera noteringen fÃ\83¶r anvÃ\83¤ndaren %s\n"
#: src/useradd.c:1550 src/usermod.c:919
#, c-format
msgid "%s: user %s exists\n"
-msgstr "%s: användare %s existerar\n"
+msgstr "%s: anvÃ\83¤ndare %s existerar\n"
#: src/useradd.c:1564
#, c-format
msgid ""
"%s: group %s exists - if you want to add this user to that group, use -g.\n"
msgstr ""
+"%s: gruppen %s finns redan - vill du lägga till en användare, använd -g.\n"
#: src/useradd.c:1602
#, c-format
msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
-msgstr "%s: varning: CREATE_HOME stöds inte, använd -m istället.\n"
+msgstr "%s: varning: CREATE_HOME stÃ\83¶ds inte, anvÃ\83¤nd -m istÃ\83¤llet.\n"
#: src/userdel.c:108
-#, c-format
+#, fuzzy, c-format
msgid "Usage: %s [-r] name\n"
-msgstr "Användning: %s [-r] namn\n"
+msgstr "AnvÃ\83¤ndning: %s [-r] namn\n"
#: src/userdel.c:160 src/userdel.c:221
#, c-format
#: src/userdel.c:315
#, c-format
msgid "%s: cannot open group file\n"
-msgstr "%s: kan inte öppna gruppfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna gruppfilen\n"
#: src/userdel.c:325
#, c-format
msgid "%s: cannot open shadow group file\n"
-msgstr "%s: kan inte öppna skuggruppfilen\n"
+msgstr "%s: kan inte Ã\83¶ppna skuggruppfilen\n"
#: src/userdel.c:343
#, c-format
msgid "%s: error deleting password entry\n"
-msgstr "%s: fel under borttagning av lösenordsnotering\n"
+msgstr "%s: fel under borttagning av lÃ\83¶senordsnotering\n"
#: src/userdel.c:347
#, c-format
msgid "%s: error deleting shadow password entry\n"
-msgstr "%s: fel under borttagning av skugglösenordsnotering\n"
+msgstr "%s: fel under borttagning av skugglÃ\83¶senordsnotering\n"
#: src/userdel.c:388
#, c-format
msgid "%s: user %s is currently logged in\n"
-msgstr "%s: användare %s är inloggad\n"
+msgstr "%s: anvÃ\83¤ndare %s Ã\83¤r inloggad\n"
#: src/userdel.c:496 src/userdel.c:641
#, c-format
msgid "%s: %s not owned by %s, not removing\n"
-msgstr "%s: %s ägs inte av %s, tar inte bort\n"
+msgstr "%s: %s Ã\83¤gs inte av %s, tar inte bort\n"
#: src/userdel.c:502
#, c-format
#: src/userdel.c:592 src/usermod.c:722
#, c-format
msgid "%s: user %s does not exist\n"
-msgstr "%s: användare %s finns inte\n"
+msgstr "%s: anvÃ\83¤ndare %s finns inte\n"
#: src/userdel.c:607 src/usermod.c:738
#, c-format
msgid "%s: user %s is a NIS user\n"
-msgstr "%s: användare %s är en NIS-användare\n"
+msgstr "%s: anvÃ\83¤ndare %s Ã\83¤r en NIS-anvÃ\83¤ndare\n"
#: src/userdel.c:664
#, c-format
msgid "%s: not removing directory %s (would remove home of user %s)\n"
-msgstr "%s: tar inte bort katalogen %s (skulle ta bort hemkatalogen för %s)\n"
+msgstr "%s: tar inte bort katalogen %s (skulle ta bort hemkatalogen fÃ\83¶r %s)\n"
#: src/userdel.c:678
#, c-format
msgstr "%s: fel under borttagning av katalogen %s\n"
#: src/usermod.c:289
-#, c-format
+#, fuzzy, c-format
msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
-msgstr "Användning: %s\t[-u uid [-o]] [-g grupp] [-G grupp,...] \n"
+msgstr "AnvÃ\83¤ndning: %s [-u uid [-o]] [-g grupp] [-G grupp,...] \n"
#: src/usermod.c:293
#, c-format
msgstr "\t\t[-d hem [-m]] [-s skal] [-c kommentar] [-l nytt_namn]\n"
#: src/usermod.c:296
-#, c-format
+#, fuzzy, c-format
msgid "[-f inactive] [-e expire] "
-msgstr "[-f inaktiv] [-e upphör] "
+msgstr "[-f inaktiv] [-e utgång] "
#: src/usermod.c:298
#, c-format
#: src/usermod.c:476
#, c-format
msgid "%s: out of memory in update_group\n"
-msgstr "%s: slut på minne i update_group\n"
+msgstr "%s: slut pÃ\83Â¥ minne i update_group\n"
#: src/usermod.c:585
#, c-format
msgid "%s: out of memory in update_gshadow\n"
-msgstr "%s: slut på minne i update_gshadow\n"
+msgstr "%s: slut pÃ\83Â¥ minne i update_gshadow\n"
#: src/usermod.c:896
#, c-format
#: src/usermod.c:903
#, c-format
msgid "%s: shadow passwords required for -e and -f\n"
-msgstr "%s: skugglösenord krävs för -e och -f\n"
+msgstr "%s: skugglÃ\83¶senord krÃ\83¤vs fÃ\83¶r -e och -f\n"
#: src/usermod.c:924
#, c-format
msgid "%s: uid %lu is not unique\n"
-msgstr "%s: uid %lu är inte unikt\n"
+msgstr "%s: uid %lu Ã\83¤r inte unikt\n"
#: src/usermod.c:1047
#, c-format
msgid "%s: error changing password entry\n"
-msgstr "%s: fel under ändring av lösenordsnotering\n"
+msgstr "%s: fel under Ã\83¤ndring av lÃ\83¶senordsnotering\n"
#: src/usermod.c:1053
#, c-format
msgid "%s: error removing password entry\n"
-msgstr "%s: fel under borttagning av lösenordsnotering\n"
+msgstr "%s: fel under borttagning av lÃ\83¶senordsnotering\n"
#: src/usermod.c:1070
#, c-format
msgid "%s: error removing shadow password entry\n"
-msgstr "%s: fel under borttagning av skugglösenordsnotering\n"
+msgstr "%s: fel under borttagning av skugglÃ\83¶senordsnotering\n"
#: src/usermod.c:1098
#, c-format
#: src/usermod.c:1111
#, c-format
msgid "%s: can't chown %s\n"
-msgstr "%s: kan inte byta ägare på %s\n"
+msgstr "%s: kan inte byta Ã\83¤gare pÃ\83Â¥ %s\n"
#: src/usermod.c:1128
#, c-format
msgid "%s: cannot rename directory %s to %s\n"
-msgstr "%s: kan inte byta namn på katalogen %s till %s\n"
+msgstr "%s: kan inte byta namn pÃ\83Â¥ katalogen %s till %s\n"
#: src/usermod.c:1223
#, c-format
msgid "%s: warning: %s not owned by %s\n"
-msgstr "%s: varning: %s ägs inte av %s\n"
+msgstr "%s: varning: %s Ã\83¤gs inte av %s\n"
#: src/usermod.c:1229
msgid "failed to change mailbox owner"
-msgstr "kunde inte byta ägare av brevlådan"
+msgstr "kunde inte byta Ã\83¤gare av brevlÃ\83Â¥dan"
#: src/usermod.c:1237
msgid "failed to rename mailbox"
-msgstr "kunde inte byta namn på brevlådan"
+msgstr "kunde inte byta namn pÃ\83Â¥ brevlÃ\83Â¥dan"
#: src/vipw.c:104
#, c-format
"%s: %s is unchanged\n"
msgstr ""
"\n"
-"%s: %s är oförändrad\n"
+"%s: %s Ã\83¤r ofÃ\83¶rÃ\83¤ndrad\n"
#: src/vipw.c:131
msgid "Couldn't lock file"
-msgstr "Kunde inte låsa filen"
+msgstr "Kunde inte lÃ\83Â¥sa filen"
#: src/vipw.c:140
msgid "Couldn't make backup"
-msgstr "Kunde inte göra en backup"
+msgstr "Kunde inte gÃ\83¶ra en backup"
#: src/vipw.c:196
#, c-format
msgid "%s: can't restore %s: %s (your changes are in %s)\n"
-msgstr "%s: kan inte återställa %s: %s (dina ändringar är i %s)\n"
+msgstr "%s: kan inte Ã\83Â¥terstÃ\83¤lla %s: %s (dina Ã\83¤ndringar Ã\83¤r i %s)\n"
#: src/vipw.c:234
#, c-format
"`vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n"
"`vigr' edits /etc/group `vigr -s' edits /etc/gshadow\n"
msgstr ""
-"Användning:\n"
-"\"vipw\" editerar /etc/passwd \"vipw -w\" editerar /etc/shadow\n"
-"\"vipg\" editerar /etc/group \"vipg -w\" editerar /etc/gshadow\n"
+"AnvÃ\83¤ndning:\n"
+"\"vipw\" redigerar /etc/passwd \"vipw -w\" redigerar /etc/shadow\n"
+"\"vipg\" redigerar /etc/group \"vipg -w\" redigerar /etc/gshadow\n"
msgstr ""
"Project-Id-Version: shadow 4.0.7\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-01-26 22:00+0800\n"
"Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n"
"Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n"
msgid "malloc(%d) failed\n"
msgstr "sawi ang malloc(%d)\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Hindi makareserba ng lugar para sa impormasyong pagsasaayos.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Ipagpaumanhin.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "labis ang dami ng mga grupo\n"
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-06-13 10:27+0300\n"
"Last-Translator: Mehmet Türker <mturker@innova.com.tr>\n"
"Language-Team: Turkish <debian-l10n-turkish@lists.debian.org>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) başarısız oldu\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Yapılandırma bilgileri için yer ayrılamadı.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "Üzgünüm.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "çok fazla grup\n"
msgstr ""
"Project-Id-Version: shadow-4.0.8\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-04-19 23:22+0300\n"
"Last-Translator: Roman Festchook <linux@polesye.net>\n"
"Language-Team: <linux@polesye.net>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) не виконано\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "Не можу виділити ресурси для конфігураційних данних.\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr ""
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
"Використання: lastlog [опції]\n"
"\n"
"Опції:\n"
-" -u, --login ЛОГІН\tвивести записи останніх входів для користувача з "
+" -u, --user ЛОГІН\tвивести записи останніх входів для користувача з "
"ЛОГІНом\n"
" -h, --help\t\tвивести допомогу та вийти\n"
" -t, --time ДНІВ\tвивести лише записи свіжіші за ДНІВ\n"
msgid "Sorry.\n"
msgstr "Вибачте.\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "занадто багато груп\n"
--- /dev/null
+# Vietnamese Translation for shadow.
+# Copyright © 2005 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@riverland.net.au>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: shadow 4.0.9\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
+"PO-Revision-Date: 2005-05-10 22:33+0930\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#: libmisc/addgrps.c:56
+#, c-format
+msgid "Warning: unknown group %s\n"
+msgstr "Cảnh báo: không biết nhóm %s.\n"
+
+#: libmisc/addgrps.c:67
+#, c-format
+msgid "Warning: too many groups\n"
+msgstr "Cảnh báo: quá nhiều nhóm.\n"
+
+#: libmisc/age.c:72
+#, c-format
+msgid "Your password has expired."
+msgstr "Mật khẩu bạn đã hết hạn dùng rồi."
+
+#: libmisc/age.c:75
+#, c-format
+msgid "Your password is inactive."
+msgstr "Mật khẩu bạn không hoạt động."
+
+#: libmisc/age.c:78
+#, c-format
+msgid "Your login has expired."
+msgstr "Đăng nhập bạn đã hết hạn dùng rồi."
+
+#: libmisc/age.c:90
+msgid " Contact the system administrator.\n"
+msgstr " Hãy liên lạc quản trị hệ thống.\n"
+
+#: libmisc/age.c:93
+msgid " Choose a new password.\n"
+msgstr " Hãy chọn mật khẩu mới.\n"
+
+#: libmisc/age.c:169
+#, c-format
+msgid "Your password will expire in %ld days.\n"
+msgstr "Mật khẩu bạn sẽ hết hạn dùng %ld ngày.\n"
+
+#: libmisc/age.c:172
+#, c-format
+msgid "Your password will expire tomorrow.\n"
+msgstr "Mật khẩu bạn sễ hết hạn dùng vào ngày mai.\n"
+
+#: libmisc/age.c:174
+#, c-format
+msgid "Your password will expire today.\n"
+msgstr "Mật khẩu bạn sễ hết hạn dùng vào hôm nay.\n"
+
+#: libmisc/chowntty.c:106
+#, c-format
+msgid "Unable to change tty %s"
+msgstr "Không thay đổi được tty %s."
+
+#: libmisc/env.c:155
+#, c-format
+msgid "Environment overflow\n"
+msgstr "Môi trường bị tràn.\n"
+
+#: libmisc/env.c:194
+#, c-format
+msgid "You may not change $%s\n"
+msgstr "Bạn không có đủ quyền thay đổi $%s.\n"
+
+#: libmisc/failure.c:229
+#, c-format
+msgid ""
+"%d failure since last login.\n"
+"Last was %s on %s.\n"
+msgid_plural ""
+"%d failures since last login.\n"
+"Last was %s on %s.\n"
+msgstr[0] ""
+"%d lần thất bại sau lần đăng nhập cuối cùng. Lần thất bại cuối cùng vào %s.\n"
+
+#: libmisc/limits.c:397
+#, c-format
+msgid "Too many logins.\n"
+msgstr "Quá nhiều việc đăng nhập.\n"
+
+#: libmisc/mail.c:61 libmisc/mail.c:76
+msgid "You have new mail."
+msgstr "Bạn có thư mới."
+
+#: libmisc/mail.c:72
+msgid "No mail."
+msgstr "Không có thư."
+
+#: libmisc/mail.c:74
+msgid "You have mail."
+msgstr "Bạn có thư."
+
+#: libmisc/obscure.c:273 src/passwd.c:181
+#, c-format
+msgid "Bad password: %s. "
+msgstr "Mật khẩu sai: %s."
+
+#: libmisc/pam_pass.c:38
+#, c-format
+msgid "passwd: pam_start() failed, error %d\n"
+msgstr "passwd: pam_start() (mật khẩu: bắt đầu pam) thất bại, có lỗi %d\n"
+
+#: libmisc/pam_pass.c:44
+#, c-format
+msgid "passwd: %s\n"
+msgstr "passwd: (mật khẩu) %s\n"
+
+#: libmisc/pam_pass.c:49
+msgid "passwd: password updated successfully\n"
+msgstr "passwd: đã cập nhật mật khẩu rồi.\n"
+
+#: libmisc/setupenv.c:207
+#, c-format
+msgid "Unable to cd to \"%s\"\n"
+msgstr "Không thể cd (lệnh chuyển đổi thư mục) sang \"%s\".\n"
+
+#: libmisc/setupenv.c:215
+msgid "No directory, logging in with HOME=/"
+msgstr "Không có thư mục thì đăng nhập với HOME=/"
+
+#: libmisc/shell.c:118
+#, c-format
+msgid "Cannot execute %s"
+msgstr "Không thể thực hiện %s."
+
+#: libmisc/sub.c:55
+#, c-format
+msgid "Invalid root directory \"%s\"\n"
+msgstr "Thư mục gốc không hợp lệ \"%s\".\n"
+
+#: libmisc/sub.c:67
+#, c-format
+msgid "Can't change root directory to \"%s\"\n"
+msgstr "Không thể thay đổi thư mục gốc thành \"%s\".\n"
+
+#: libmisc/xmalloc.c:22
+#, c-format
+msgid "malloc(%d) failed\n"
+msgstr "malloc(%d) (phân chia bộ nhớ) đã thất bại.\n"
+
+#: lib/getdef.c:262
+#, c-format
+msgid "Could not allocate space for config info.\n"
+msgstr "Không thể phân chia chỗ cho thông tin cấu hình.\n"
+
+#: lib/getdef.c:303
+#, c-format
+msgid "configuration error - unknown item '%s' (notify administrator)\n"
+msgstr "lỗi cấu hình - không biết mục '%s' (hãy báo quản trị).\n"
+
+#: lib/pwauth.c:45 src/newgrp.c:341
+msgid "Password: "
+msgstr "Mật khẩu:"
+
+#: lib/pwauth.c:47
+#, c-format
+msgid "%s's Password: "
+msgstr "Mật khẩu của %s:"
+
+#: src/chage.c:112
+#, c-format
+msgid ""
+"Usage: chage [-l] [-m min_days] [-M max_days] [-W warn]\n"
+" [-I inactive] [-E expire] [-d last_day] user\n"
+msgstr ""
+"Cách sử dụng: chage [-l] [-m ngày_tối_thiểu] [-M ngày_tối_đa] [-W cảnh_bao]\n"
+"\t[-I không_hoạt_động] [-E hết_hạn] [-d ngày_cuối_cùng] người_dùng\n"
+
+#: src/chage.c:145 src/chfn.c:139 src/chsh.c:89
+#, c-format
+msgid "Enter the new value, or press ENTER for the default\n"
+msgstr "Hãy nhập giá trị mới, hoạc bấm phím Enter để chọn mặc định.\n"
+
+#: src/chage.c:149
+msgid "Minimum Password Age"
+msgstr "Phạm vị thời gian tối thiểu cho mật khẩu"
+
+#: src/chage.c:155
+msgid "Maximum Password Age"
+msgstr "Phạm vị thời gian tối đa cho mật khẩu"
+
+#: src/chage.c:162
+msgid "Last Password Change (YYYY-MM-DD)"
+msgstr "Thay đổi mặt khẩu cuối cùng (NNNN-TT-NN)"
+
+#: src/chage.c:170
+msgid "Password Expiration Warning"
+msgstr "Cảnh báo hết hạn dùng mật khẩu"
+
+#: src/chage.c:176
+msgid "Password Inactive"
+msgstr "Mật khẩu không hoạt động"
+
+#: src/chage.c:184
+msgid "Account Expiration Date (YYYY-MM-DD)"
+msgstr "Ngày hết hạn dùng tài khoản (NNNN-TT-NN)"
+
+#: src/chage.c:231
+#, c-format
+msgid "Last password change\t\t\t\t\t: "
+msgstr "Thay đổi mặt khẩu cuối cùng\t\t\t\t\t: "
+
+#: src/chage.c:233 src/chage.c:247 src/chage.c:263 src/chage.c:276
+#, c-format
+msgid "never\n"
+msgstr "không bao giờ\n"
+
+#: src/chage.c:244
+#, c-format
+msgid "Password expires\t\t\t\t\t: "
+msgstr "Mật khẩu hết hạn dùng:\t\t\t\t\t: "
+
+#: src/chage.c:260
+#, c-format
+msgid "Password inactive\t\t\t\t\t: "
+msgstr "Mật khẩu không hoạt động\t\t\t\t\t:"
+
+#: src/chage.c:274
+#, c-format
+msgid "Account expires\t\t\t\t\t\t: "
+msgstr "Tài khoản hết hạn dùng\t\t\t\t\t\t"
+
+#: src/chage.c:290
+#, c-format
+msgid "Minimum number of days between password change\t\t: %ld\n"
+msgstr "Số ngày tối thiểu giữa hai lần thay đổi mật khẩu\t\t: %ld\n"
+
+#: src/chage.c:292
+#, c-format
+msgid "Maximum number of days between password change\t\t: %ld\n"
+msgstr "Số ngày tối đa giữa hai lần thay đổi mật khẩu\t\t: %ld\n"
+
+#: src/chage.c:294
+#, c-format
+msgid "Number of days of warning before password expires\t: %ld\n"
+msgstr "Số ngày cảnh báo trước khi mật khẩu hết hạn\t: %ld\n"
+
+#: src/chage.c:431
+#, c-format
+msgid "%s: do not include \"l\" with other flags\n"
+msgstr "%s: đừng bao gồm \"l\" cùng với những cờ khác\n"
+
+#: src/chage.c:443 src/chage.c:571 src/chfn.c:268 src/chfn.c:277
+#: src/chfn.c:286 src/chfn.c:295 src/chfn.c:304 src/chfn.c:370
+#: src/gpasswd.c:150 src/login.c:421 src/passwd.c:823 src/passwd.c:859
+#, c-format
+msgid "%s: permission denied.\n"
+msgstr "%s: không có đủ quyền.\n"
+
+#: src/chage.c:476 src/chage.c:682 src/chpasswd.c:178 src/groupadd.c:489
+#: src/groupdel.c:275 src/groupmod.c:457 src/newusers.c:361 src/useradd.c:1527
+#: src/userdel.c:573 src/usermod.c:1314 src/usermod.c:1368
+#, c-format
+msgid "%s: PAM authentication failed\n"
+msgstr "%s: xác thức kiểu PAM thất bại\n"
+
+#: src/chage.c:494 src/chpasswd.c:193
+#, c-format
+msgid "%s: can't open password file\n"
+msgstr "%s: không mở được tập tin mật khẩu.\n"
+
+#: src/chage.c:501 src/chfn.c:324 src/chsh.c:181 src/gpasswd.c:139
+#: src/gpasswd.c:216 src/groups.c:64 src/passwd.c:865
+#, c-format
+msgid "%s: unknown user %s\n"
+msgstr "%s: người dùng lạ %s\n"
+
+#: src/chage.c:519
+#, c-format
+msgid "%s: can't lock shadow password file"
+msgstr "%s: không khóa được tập tin mật khẩu bóng."
+
+#: src/chage.c:527
+#, c-format
+msgid "%s: can't open shadow password file"
+msgstr "%s: không mở được tập tin mật khẩu bóng."
+
+#: src/chage.c:587
+#, c-format
+msgid "Changing the aging information for %s\n"
+msgstr "Đang thay đổi thông tin phạm vị thời gian cho %s.\n"
+
+#: src/chage.c:589
+#, c-format
+msgid "%s: error changing fields\n"
+msgstr "%s: gặp lỗi khi chuyển đổi trường.\n"
+
+#: src/chage.c:613 src/pwunconv.c:137
+#, c-format
+msgid "%s: can't update password file\n"
+msgstr "%s: không cập nhật được tập tin mật khẩu.\n"
+
+#: src/chage.c:636 src/pwunconv.c:132
+#, c-format
+msgid "%s: can't update shadow password file\n"
+msgstr "%s: không cập nhật được tập tin mật khẩu bóng.\n"
+
+#: src/chage.c:649
+#, c-format
+msgid "%s: can't rewrite shadow password file\n"
+msgstr "%s: không thể ghi lại tập tin mật khẩu bóng.\n"
+
+#: src/chage.c:693
+#, c-format
+msgid "%s: can't rewrite password file\n"
+msgstr "%s: không thể ghi lại tập tin mật khẩu.\n"
+
+#: src/chage.c:712 src/chpasswd.c:374 src/groupadd.c:535 src/groupdel.c:341
+#: src/groupmod.c:524 src/newusers.c:601 src/useradd.c:1622 src/userdel.c:699
+#, c-format
+msgid "%s: PAM chauthtok failed\n"
+msgstr "%s: chauthtok PAM (thay đổi hiệu bài xác thức) đã thất bại.\n"
+
+#: src/chfn.c:84
+#, c-format
+msgid ""
+"Usage: %s [-f full_name] [-r room_no] [-w work_ph]\n"
+"\t[-h home_ph] [-o other] [user]\n"
+msgstr ""
+"Cách sử dụng: %s [-f họ_tên] [-r số_phòng] [-w điện_thoại_chỗ_làm]\n"
+"\t[-h điện_thoại_ở_nhà] [-o khác] [người_dùng]\n"
+
+#: src/chfn.c:89
+#, c-format
+msgid "Usage: %s [-f full_name] [-r room_no] [-w work_ph] [-h home_ph]\n"
+msgstr ""
+"Cách sử dụng: %s [-f họ_tên] [-r số_phòng] [-w điện_thoại_chỗ_làm]\n"
+"\t[-h điện_thoại_ở_nhà]\n"
+
+#: src/chfn.c:142
+msgid "Full Name"
+msgstr "Họ tên"
+
+#: src/chfn.c:144
+#, c-format
+msgid "\tFull Name: %s\n"
+msgstr "\tHọ tên: %s\n"
+
+#: src/chfn.c:147 src/chfn.c:149
+msgid "Room Number"
+msgstr "Số phòng"
+
+#: src/chfn.c:152 src/chfn.c:154
+msgid "Work Phone"
+msgstr "Điện thoại chỗ làm"
+
+#: src/chfn.c:157 src/chfn.c:159
+msgid "Home Phone"
+msgstr "Điện thoại ở nhà"
+
+#: src/chfn.c:162
+msgid "Other"
+msgstr "Khác"
+
+#: src/chfn.c:333 src/chsh.c:189 src/passwd.c:805
+#, c-format
+msgid "%s: Cannot determine your user name.\n"
+msgstr "%s: không thể quyết định tên người dùng của bạn.\n"
+
+#: src/chfn.c:350 src/chsh.c:206
+#, c-format
+msgid "%s: cannot change user `%s' on NIS client.\n"
+msgstr ""
+"%s: không thay đổi được `%s' của người dùng trong ứng dụng khách NIS.\n"
+
+#: src/chfn.c:357 src/chsh.c:213
+#, c-format
+msgid "%s: `%s' is the NIS master for this client.\n"
+msgstr "%s: `%s' là NIS cái cho ứng dụng khách này.\n"
+
+#: src/chfn.c:382
+#, c-format
+msgid "%s: Permission denied.\n"
+msgstr "%s: không đủ quyền.\n"
+
+#: src/chfn.c:446
+#, c-format
+msgid "Changing the user information for %s\n"
+msgstr "Đang thay đổi thông tin người dùng cho %s\n"
+
+#: src/chfn.c:454
+#, c-format
+msgid "%s: invalid name: \"%s\"\n"
+msgstr "%s: tên không hợp lệ: \"%s\"\n"
+
+#: src/chfn.c:459
+#, c-format
+msgid "%s: invalid room number: \"%s\"\n"
+msgstr "%s: số phòng không hợp lệ: \"%s\"\n"
+
+#: src/chfn.c:465
+#, c-format
+msgid "%s: invalid work phone: \"%s\"\n"
+msgstr "%s: điện thoại chỗ làm không hợp lệ: \"%s\"\n"
+
+#: src/chfn.c:471
+#, c-format
+msgid "%s: invalid home phone: \"%s\"\n"
+msgstr "%s: điện thoại ở nhà không hợp lệ: \"%s\"\n"
+
+#: src/chfn.c:478
+#, c-format
+msgid "%s: \"%s\" contains illegal characters\n"
+msgstr "%s: \"%s\" chứa ký tự sai\n"
+
+#: src/chfn.c:491
+#, c-format
+msgid "%s: fields too long\n"
+msgstr "%s: trường quá dài\n"
+
+#: src/chfn.c:506 src/chsh.c:320 src/gpasswd.c:554 src/passwd.c:966
+#, c-format
+msgid "Cannot change ID to root.\n"
+msgstr "Không thay đổi được thông tin nhận biết (ID) thành người chủ (root).\n"
+
+#: src/chfn.c:521 src/chsh.c:335 src/passwd.c:508 src/passwd.c:549
+#, c-format
+msgid "Cannot lock the password file; try again later.\n"
+msgstr "Không khóa được tập tin mật khẩu; hãy thử lại sau.\n"
+
+#: src/chfn.c:527 src/chsh.c:341 src/passwd.c:513 src/passwd.c:554
+#, c-format
+msgid "Cannot open the password file.\n"
+msgstr "Không mở được tập tin mật khẩu.\n"
+
+#: src/chfn.c:544 src/chsh.c:356 src/passwd.c:519 src/usermod.c:1023
+#, c-format
+msgid "%s: %s not found in /etc/passwd\n"
+msgstr "%s: không tìm thấy %s trong /etc/passwd\n"
+
+#: src/chfn.c:560 src/chsh.c:375 src/passwd.c:528 src/passwd.c:589
+#, c-format
+msgid "Error updating the password entry.\n"
+msgstr "Gặp lỗi khi cập nhật mục ghi mật khẩu.\n"
+
+#: src/chfn.c:571 src/chsh.c:387 src/passwd.c:533 src/passwd.c:594
+#, c-format
+msgid "Cannot commit password file changes.\n"
+msgstr "Không đóng góp được các thay đổi mật khẩu.\n"
+
+#: src/chfn.c:578 src/chsh.c:394
+#, c-format
+msgid "Cannot unlock the password file.\n"
+msgstr "Không thể bỏ khóa tập tin mật khẩu.\n"
+
+#: src/chpasswd.c:71
+#, c-format
+msgid ""
+"Usage: chpasswd [options]\n"
+"\n"
+"Options:\n"
+" -e, --encrypted\tsupplied passwords are encrypted\n"
+" -h, --help\t\tdisplay this help message and exit\n"
+" -m, --md5\t\tuse MD5 encryption instead DES when the supplied\n"
+"\t\t\tpasswords are not encrypted\n"
+msgstr ""
+"Cách sử dụng: chpasswd [tùy_chọn]\n"
+"\n"
+"Tùy chọn:\n"
+" -e, --encrypted\tcác mật khẩu đã cung cấp thì _được mật mã_\n"
+" -h, --help\t\thiển thị _trợ giúp_ này rồi thoát\n"
+" -m, --md5\t\tsử dụng cách mật mã MD5 thay vào DES khi các\n"
+"\t\t\tmật khẩu đã cung cấp chưa được mật mã\n"
+
+#: src/chpasswd.c:189
+#, c-format
+msgid "%s: can't lock password file\n"
+msgstr "%s: không khóa được tập tin mật khẩu.\n"
+
+#: src/chpasswd.c:201 src/pwconv.c:95
+#, c-format
+msgid "%s: can't lock shadow file\n"
+msgstr "%s: không khóa được tập tin bóng.\n"
+
+#: src/chpasswd.c:207 src/gpasswd.c:580 src/pwconv.c:100 src/pwunconv.c:89
+#: src/pwunconv.c:94
+#, c-format
+msgid "%s: can't open shadow file\n"
+msgstr "%s: không mở được tập tin bóng.\n"
+
+#: src/chpasswd.c:230 src/newusers.c:434
+#, c-format
+msgid "%s: line %d: line too long\n"
+msgstr "%s: dòng %d: dòng quá dài.\n"
+
+#: src/chpasswd.c:250
+#, c-format
+msgid "%s: line %d: missing new password\n"
+msgstr "%s: dòng %d: thiếu mật khẩu mới.\n"
+
+#: src/chpasswd.c:274
+#, c-format
+msgid "%s: line %d: unknown user %s\n"
+msgstr "%s: dòng %d: người dùng lại %s.\n"
+
+#: src/chpasswd.c:320
+#, c-format
+msgid "%s: line %d: cannot update password entry\n"
+msgstr "%s: dòng %d: không câp nhật được mục ghi mật khẩu.\n"
+
+#: src/chpasswd.c:337 src/newusers.c:561
+#, c-format
+msgid "%s: error detected, changes ignored\n"
+msgstr "%s: gặp lỗi thì đã bỏ qua các thay đổi.\n"
+
+#: src/chpasswd.c:349
+#, c-format
+msgid "%s: error updating shadow file\n"
+msgstr "%s: gặp lỗi khi cập nhật tập tin bóng.\n"
+
+#: src/chpasswd.c:357
+#, c-format
+msgid "%s: error updating password file\n"
+msgstr "%s: gặp lỗi khi cập nhật tập tin mật khẩu.\n"
+
+#: src/chsh.c:76
+#, c-format
+msgid "Usage: %s [-s shell] [name]\n"
+msgstr "Cách sử dụng: %s [-s hệ_vỏ] [tên]\n"
+
+#: src/chsh.c:90
+msgid "Login Shell"
+msgstr "Hệ vỏ đăng nhập"
+
+#: src/chsh.c:229 src/chsh.c:242 src/chsh.c:256
+#, c-format
+msgid "You may not change the shell for %s.\n"
+msgstr "Bạn không có đủ quyền thay đổi hệ vỏ cho %s.\n"
+
+#: src/chsh.c:288
+#, c-format
+msgid "Changing the login shell for %s\n"
+msgstr "Đang thay đổi hệ vỏ đăng nhập cho %s\n"
+
+#: src/chsh.c:300
+#, c-format
+msgid "%s: Invalid entry: %s\n"
+msgstr "%s: mục ghi không hợp lệ: %s\n"
+
+#: src/chsh.c:305
+#, c-format
+msgid "%s is an invalid shell.\n"
+msgstr "%s là hệ vỏ không hợp lệ.\n"
+
+#: src/expiry.c:59
+#, c-format
+msgid "Usage: expiry {-f|-c}\n"
+msgstr ""
+"Cách sử dụng: expiry {-f|-c}\n"
+"(expiry: khi hết hạn dùng)\n"
+
+#: src/expiry.c:112
+#, c-format
+msgid "%s: WARNING! Must be set-UID root!\n"
+msgstr "%s: CẢNH BÁO! Phải có quyền người chủ (root) set-UID!\n"
+
+#: src/expiry.c:122
+#, c-format
+msgid "%s: unknown user\n"
+msgstr "%s: người dùng lạ.\n"
+
+#: src/faillog.c:59
+#, c-format
+msgid ""
+"Usage: faillog [options]\n"
+"\n"
+"Options:\n"
+" -a, --all\t\t\tdisplay faillog records for all users\n"
+" -h, --help\t\t\tdisplay this help message and exit\n"
+" -l, --lock-time SEC\t\tafter failed login lock accout to SEC seconds\n"
+" -m, --maximum MAX\t\tset maximum failed login counters to MAX\n"
+" -r, --reset\t\t\treset the counters of login failures\n"
+" -t, --time DAYS\t\tdisplay faillog records more recent than DAYS\n"
+" -u, --user LOGIN\t\tdisplay faillog record or maintains failure counters\n"
+"\t\t\t\tand limits (if used with -r, -m or -l options) only\n"
+"\t\t\t\tfor user with LOGIN\n"
+msgstr ""
+"Cách sử dụng: faillog [tùy_chọn]\n"
+"(faillog: bản ghi việc không thành công)\n"
+"\n"
+"Tùy chọn:\n"
+" -a, --all\t\t\thiển thị các mục ghi faillog cho _mọi_ người dùng\n"
+" -h, --help\t\t\thiển thị _trợ giúp_ này rồi thoát\n"
+" -l, --lock-time SỐ\t\tsau khi không khóa đăng nhập được thì\n"
+"\t\t\t\t\tkhóa tài khoản với SỐ giây (_thời gian khóa_)\n"
+" -m, --maximum SỐ\t\tlập số đếm việc đăng nhập không thành công\n"
+"\t\t\t\t\tthành SỐ ấy (_tôi đa_)\n"
+" -r, --reset\t\t\t_lập lại_ số đếm việc đăng nhập không thành công\n"
+" -t, --time SỐ\t\thiển thị các mục ghi faillog mới hơn SỐ ngày (_thời "
+"gian_)\n"
+" -u, --user TÊN_DÙNG\t\thiển thị mục ghi faillog hay bảo quản bộ đếm\n"
+"\t\t\t\tviệc đăng nhập không thành công và hạn chế\n"
+"\t\t\t\t(nếu dùng với tùy chọn -r, -m hay -l)\n"
+"\t\t\t\tchỉ cho _người_ có tên _dùng_ ấy\n"
+
+#: src/faillog.c:87
+#, c-format
+msgid "Login Failures Maximum Latest On\n"
+msgstr "Tên dùng\t Thất bại\tTối đa\tMới nhất Vào\n"
+
+#: src/faillog.c:105
+#, c-format
+msgid " [%lds left]"
+msgstr " [%lds còn lại]"
+
+#: src/faillog.c:109
+#, c-format
+msgid " [%lds lock]"
+msgstr " [%lds khóa]"
+
+#: src/faillog.c:353 src/lastlog.c:187
+#, c-format
+msgid "Unknown User: %s\n"
+msgstr "Người dùng lạ: %s\n"
+
+#: src/gpasswd.c:71
+#, c-format
+msgid "Usage: %s [-r|-R] group\n"
+msgstr "Cách sử dụng: %s [-r|-R] nhóm\n"
+
+#: src/gpasswd.c:72
+#, c-format
+msgid " %s [-a user] group\n"
+msgstr " %s [-a người_dùng] nhóm\n"
+
+#: src/gpasswd.c:73
+#, c-format
+msgid " %s [-d user] group\n"
+msgstr " %s [-d người_dùng] nhóm\n"
+
+#: src/gpasswd.c:76
+#, c-format
+msgid " %s [-A user,...] [-M user,...] group\n"
+msgstr " %s [-A người_dùng,...] [-M người_dùng,...] nhóm\n"
+
+#: src/gpasswd.c:78
+#, c-format
+msgid " %s [-M user,...] group\n"
+msgstr " %s [-M người_dùng,...] nhóm\n"
+
+#: src/gpasswd.c:229
+#, c-format
+msgid "%s: shadow group passwords required for -A\n"
+msgstr "%s: cần thiết mật khẩu nhóm bóng cho -A\n"
+
+#: src/gpasswd.c:280
+#, c-format
+msgid "Who are you?\n"
+msgstr "Bạn là ai?\n"
+
+#: src/gpasswd.c:299 src/newgrp.c:290
+#, c-format
+msgid "unknown group: %s\n"
+msgstr "nhóm lạ: %s\n"
+
+#: src/gpasswd.c:408
+#, c-format
+msgid "Adding user %s to group %s\n"
+msgstr "Đang thêm người dung %s vào nhóm %s\n"
+
+#: src/gpasswd.c:426
+#, c-format
+msgid "Removing user %s from group %s\n"
+msgstr "Đang loại bỏ người dùng %s khỏi nhóm %s\n"
+
+#: src/gpasswd.c:439
+#, c-format
+msgid "%s: unknown member %s\n"
+msgstr "%s: thành viên lạ %s\n"
+
+#: src/gpasswd.c:485
+#, c-format
+msgid "%s: Not a tty\n"
+msgstr "%s: không phải là tty\n"
+
+#: src/gpasswd.c:506
+#, c-format
+msgid "Changing the password for group %s\n"
+msgstr "Đang thay đổi mật khẩu cho nhóm %s\n"
+
+#: src/gpasswd.c:509
+msgid "New Password: "
+msgstr "Mật khẩu mới:"
+
+#: src/gpasswd.c:514 src/passwd.c:278
+msgid "Re-enter new password: "
+msgstr "Hãy nhập lại mật khẩu mới:"
+
+#: src/gpasswd.c:526
+msgid "They don't match; try again"
+msgstr "Hai mật khẩu ấy chưa khớp với nhau thì háy thử lại."
+
+#: src/gpasswd.c:530
+#, c-format
+msgid "%s: Try again later\n"
+msgstr "%s: hãy thử lại sau.\n"
+
+#: src/gpasswd.c:562
+#, c-format
+msgid "%s: can't get lock\n"
+msgstr "%s: không gọi được khóa.\n"
+
+#: src/gpasswd.c:568
+#, c-format
+msgid "%s: can't get shadow lock\n"
+msgstr "%s: không gọi được khóa bóng.\n"
+
+#: src/gpasswd.c:574
+#, c-format
+msgid "%s: can't open file\n"
+msgstr "%s: không mở được tập tin.\n"
+
+#: src/gpasswd.c:586
+#, c-format
+msgid "%s: can't update entry\n"
+msgstr "%s: không cập nhật được mục ghi.\n"
+
+#: src/gpasswd.c:592
+#, c-format
+msgid "%s: can't update shadow entry\n"
+msgstr "%s: không cập nhật được mục ghi bóng.\n"
+
+#: src/gpasswd.c:598
+#, c-format
+msgid "%s: can't re-write file\n"
+msgstr "%s: không ghi lại được tập tin.\n"
+
+#: src/gpasswd.c:604
+#, c-format
+msgid "%s: can't re-write shadow file\n"
+msgstr "%s: không ghi lại được tập tin bóng.\n"
+
+#: src/gpasswd.c:612
+#, c-format
+msgid "%s: can't unlock file\n"
+msgstr "%s: không bỏ khóa được tập tin.\n"
+
+#: src/groupadd.c:97
+#, c-format
+msgid "Usage: groupadd [-g gid [-o]] [-f] group\n"
+msgstr ""
+"Cách sử dụng: groupadd [-g gid [-o]] nhóm\n"
+"(groupadd: thêm nhóm)\n"
+
+#: src/groupadd.c:161 src/groupadd.c:170 src/groupmod.c:174 src/groupmod.c:197
+#: src/useradd.c:857 src/usermod.c:514 src/usermod.c:636
+#, c-format
+msgid "%s: error adding new group entry\n"
+msgstr "%s: gặp lỗi khi thêm mục ghi nhóm mới.\n"
+
+#: src/groupadd.c:219 src/useradd.c:904
+#, c-format
+msgid "%s: name %s is not unique\n"
+msgstr "%s: tên %s không phải độc nhất.\n"
+
+#: src/groupadd.c:234
+#, c-format
+msgid "%s: gid %u is not unique\n"
+msgstr "%s: gid %u không phải độc nhất.\n"
+
+#: src/groupadd.c:258
+#, c-format
+msgid "%s: can't get unique gid\n"
+msgstr "%s: không gọi được gid độc nhất.\n"
+
+#: src/groupadd.c:280 src/groupmod.c:283
+#, c-format
+msgid "%s: %s is not a valid group name\n"
+msgstr "%s: %s không phải là tên nhóm hợp lệ\n"
+
+#: src/groupadd.c:309 src/groupmod.c:308
+#, c-format
+msgid "%s: invalid group %s\n"
+msgstr "%s: nhóm không hợp lệ %s.\n"
+
+#: src/groupadd.c:326 src/useradd.c:1099
+#, c-format
+msgid "%s: -O requires NAME=VALUE\n"
+msgstr "%s: -O cần đến TÊN=GIÁ_TRỊ\n"
+
+#: src/groupadd.c:370 src/groupdel.c:124 src/groupmod.c:343 src/useradd.c:1212
+#: src/userdel.c:245 src/usermod.c:522
+#, c-format
+msgid "%s: cannot rewrite group file\n"
+msgstr "%s: không ghi lại được tập tin nhóm.\n"
+
+#: src/groupadd.c:377 src/groupdel.c:131 src/groupmod.c:350 src/useradd.c:1220
+#: src/userdel.c:251 src/usermod.c:645
+#, c-format
+msgid "%s: cannot rewrite shadow group file\n"
+msgstr "%s: không ghi lại được tập tin nhóm bóng.\n"
+
+#: src/groupadd.c:394 src/groupdel.c:148 src/groupmod.c:367 src/userdel.c:311
+#, c-format
+msgid "%s: unable to lock group file\n"
+msgstr "%s: không khóa được tập tin nhóm.\n"
+
+#: src/groupadd.c:398 src/groupdel.c:152 src/groupmod.c:371
+#, c-format
+msgid "%s: unable to open group file\n"
+msgstr "%s: không mở được tập tin nhóm.\n"
+
+#: src/groupadd.c:404 src/groupdel.c:158 src/groupmod.c:377 src/userdel.c:321
+#, c-format
+msgid "%s: unable to lock shadow group file\n"
+msgstr "%s: không khóa được tập tin nhóm bóng.\n"
+
+#: src/groupadd.c:409 src/groupdel.c:163 src/groupmod.c:382
+#, c-format
+msgid "%s: unable to open shadow group file\n"
+msgstr "%s: không mở được tập tin nhóm bóng.\n"
+
+#: src/groupadd.c:508
+#, c-format
+msgid "%s: group %s exists\n"
+msgstr "%s: có nhóm %s rồi.\n"
+
+#: src/groupdel.c:83
+#, c-format
+msgid "Usage: groupdel group\n"
+msgstr ""
+"Cách sử dụng: groupdel nhóm\n"
+"(groupdel: xóa bỏ nhóm)\n"
+
+#: src/groupdel.c:96 src/groupmod.c:178 src/groupmod.c:201
+#, c-format
+msgid "%s: error removing group entry\n"
+msgstr "%s: gặp lỗi khi loại bỏ mục ghi nhóm.\n"
+
+#: src/groupdel.c:106
+#, c-format
+msgid "%s: error removing shadow group entry\n"
+msgstr "%s: gặp lỗi khi loại bỏ mục ghi nhóm bóng.\n"
+
+#: src/groupdel.c:202
+#, c-format
+msgid "%s: cannot remove user's primary group.\n"
+msgstr "%s: không loại bỏ được nhóm chính của người dùng.\n"
+
+#: src/groupdel.c:290 src/groupmod.c:471
+#, c-format
+msgid "%s: group %s does not exist\n"
+msgstr "%s: chưa có nhóm %s.\n"
+
+#: src/groupdel.c:303 src/groupmod.c:485
+#, c-format
+msgid "%s: group %s is a NIS group\n"
+msgstr "%s: nhóm %s là nhóm NIS.\n"
+
+#: src/groupdel.c:308 src/groupmod.c:490 src/userdel.c:611 src/usermod.c:743
+#, c-format
+msgid "%s: %s is the NIS master\n"
+msgstr "%s: %s là NIS cái.\n"
+
+#: src/groupmod.c:98
+#, c-format
+msgid "Usage: groupmod [-g gid [-o]] [-n name] group\n"
+msgstr ""
+"Cách sử dụng: groupmod [-g gid [-o]] [-n tên] nhóm\n"
+"(groupmod: sửa đổi nhóm)\n"
+
+#: src/groupmod.c:156
+#, c-format
+msgid "%s: %s not found in /etc/group\n"
+msgstr "%s: không tìm thấy %s trong /etc/group\n"
+
+#: src/groupmod.c:242
+#, c-format
+msgid "%s: %u is not a unique gid\n"
+msgstr "%s: %u không phải là gid độc nhất.\n"
+
+#: src/groupmod.c:272
+#, c-format
+msgid "%s: %s is not a unique name\n"
+msgstr "%s: %s không phải là tên độc nhất.\n"
+
+#: src/grpck.c:87
+#, c-format
+msgid "Usage: %s [-r] [-s] [group [gshadow]]\n"
+msgstr "Cách sử dụng: %s [-r] [-s] [nhóm [nhóm_bóng]]\n"
+
+#: src/grpck.c:89
+#, c-format
+msgid "Usage: %s [-r] [-s] [group]\n"
+msgstr "Cách sử dụng: %s [-r] [-s] [nhóm]\n"
+
+#: src/grpck.c:107 src/pwck.c:108
+msgid "No"
+msgstr "Không"
+
+#: src/grpck.c:191 src/pwck.c:175
+#, c-format
+msgid "%s: -s and -r are incompatibile\n"
+msgstr "%s: hai tùy chọn -s và -r không tương thích.\n"
+
+#: src/grpck.c:230 src/grpck.c:239 src/pwck.c:214 src/pwck.c:223
+#, c-format
+msgid "%s: cannot lock file %s\n"
+msgstr "%s: không khóa được tập tin %s.\n"
+
+#: src/grpck.c:255 src/grpck.c:264 src/mkpasswd.c:201 src/pwck.c:239
+#: src/pwck.c:248
+#, c-format
+msgid "%s: cannot open file %s\n"
+msgstr "%s: không mở được tập tin %s.\n"
+
+#: src/grpck.c:307
+#, c-format
+msgid "invalid group file entry\n"
+msgstr "mục ghi tập tin nhóm không hợp lệ.\n"
+
+#: src/grpck.c:308 src/grpck.c:371 src/grpck.c:453 src/grpck.c:516
+#: src/grpck.c:533 src/pwck.c:293 src/pwck.c:355 src/pwck.c:453 src/pwck.c:515
+#: src/pwck.c:539
+#, c-format
+msgid "delete line `%s'? "
+msgstr "xóa bỏ dòng `%s' chứ?"
+
+#: src/grpck.c:370
+msgid "duplicate group entry\n"
+msgstr "mục ghi nhóm nhân bản\n"
+
+#: src/grpck.c:387
+#, c-format
+msgid "invalid group name `%s'\n"
+msgstr "tên nhóm không hợp lệ `%s'\n"
+
+#: src/grpck.c:413
+#, c-format
+msgid "group %s: no user %s\n"
+msgstr "nhóm %s: không có người dùng %s.\n"
+
+#: src/grpck.c:415 src/grpck.c:585
+#, c-format
+msgid "delete member `%s'? "
+msgstr "xóa bỏ thành viên `%s' chứ?"
+
+#: src/grpck.c:452
+#, c-format
+msgid "invalid shadow group file entry\n"
+msgstr "mục ghi tập tin nhóm bóng không hợp lệ\n"
+
+#: src/grpck.c:515
+msgid "duplicate shadow group entry\n"
+msgstr "mục ghi nhóm bóng nhân bản\n"
+
+#: src/grpck.c:532
+msgid "no matching group file entry\n"
+msgstr "không có mục ghi tập tin nhóm có khớp\n"
+
+#: src/grpck.c:553
+#, c-format
+msgid "shadow group %s: no administrative user %s\n"
+msgstr "nhóm bóng %s: không có người dùng có quyền quản lý %s.\n"
+
+#: src/grpck.c:555
+#, c-format
+msgid "delete administrative member `%s'? "
+msgstr "xóa bỏ thành viên có quyền quản lý `%s' chứ?"
+
+#: src/grpck.c:583
+#, c-format
+msgid "shadow group %s: no user %s\n"
+msgstr "nhóm bóng %s: không có người dùng %s.\n"
+
+#: src/grpck.c:611 src/grpck.c:617 src/pwck.c:573 src/pwck.c:581
+#, c-format
+msgid "%s: cannot update file %s\n"
+msgstr "%s: không cập nhật được tập tin %s.\n"
+
+#: src/grpck.c:640 src/pwck.c:606
+#, c-format
+msgid "%s: the files have been updated\n"
+msgstr "%s: đã cập nhật các tập tin ấy rồi.\n"
+
+#: src/grpck.c:641 src/pwck.c:607
+#, c-format
+msgid "%s: no changes\n"
+msgstr "%s: chưa thay đổi gì\n"
+
+#: src/grpconv.c:60 src/grpunconv.c:56
+#, c-format
+msgid "%s: can't lock group file\n"
+msgstr "%s: không khóa được tập tin nhóm.\n"
+
+#: src/grpconv.c:65 src/grpunconv.c:61
+#, c-format
+msgid "%s: can't open group file\n"
+msgstr "%s: không mở được tập tin nhóm.\n"
+
+#: src/grpconv.c:70 src/grpunconv.c:66
+#, c-format
+msgid "%s: can't lock shadow group file\n"
+msgstr "%s: không khóa được tập tin nhóm bóng.\n"
+
+#: src/grpconv.c:75 src/grpunconv.c:71
+#, c-format
+msgid "%s: can't open shadow group file\n"
+msgstr "%s: không mở được tập tin nhóm bóng.\n"
+
+#: src/grpconv.c:92
+#, c-format
+msgid "%s: can't remove shadow group %s\n"
+msgstr "%s: không loại bỏ được nhóm bóng %s.\n"
+
+#: src/grpconv.c:130 src/pwconv.c:153
+#, c-format
+msgid "%s: can't update shadow entry for %s\n"
+msgstr "%s: không cập nhật được mục ghi bóng cho %s.\n"
+
+#: src/grpconv.c:140 src/grpunconv.c:88
+#, c-format
+msgid "%s: can't update entry for group %s\n"
+msgstr "%s: không cập nhật được mục ghi cho nhóm %s.\n"
+
+#: src/grpconv.c:147 src/grpunconv.c:96
+#, c-format
+msgid "%s: can't update shadow group file\n"
+msgstr "%s: không cập nhật được tập tin nhóm bóng.\n"
+
+#: src/grpconv.c:152 src/grpunconv.c:102
+#, c-format
+msgid "%s: can't update group file\n"
+msgstr "%s: không cập nhật được tập tin nhóm.\n"
+
+#: src/grpunconv.c:107
+#, c-format
+msgid "%s: can't delete shadow group file\n"
+msgstr "%s: không xóa bỏ được tập tin nhóm bóng.\n"
+
+#: src/id.c:53
+#, c-format
+msgid "Usage: id [-a]\n"
+msgstr "Cách sử dụng: id [-a]\n"
+
+#: src/id.c:55
+#, c-format
+msgid "Usage: id\n"
+msgstr "Cách sử dụng: id\n"
+
+#: src/id.c:169
+#, c-format
+msgid " groups="
+msgstr " nhóm="
+
+#: src/lastlog.c:64
+#, c-format
+msgid ""
+"Usage: lastlog [options]\n"
+"\n"
+"Options:\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -h, --help\t\tdisplay this help message and exit\n"
+" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
+msgstr ""
+"Cách sử dụng: lastlog [tùy_chọn]\n"
+"(lastlog: bản ghi cuối cùng)\n"
+"\n"
+"Tùy chọn:\n"
+" -u, --user TÊN_DÙNG\thiển thị mục ghi lastlog cho _người dùng_ có tên ấy\n"
+" -h, --help\t\thiển thị _trợ giúp_ này rồi thoát\n"
+" -t, --time SỐ\thiển thị các mục ghi lastlog chỉ mới hơn SỐ ngày (_thời "
+"gian_)\n"
+
+#: src/lastlog.c:90
+#, c-format
+msgid "Username Port From Latest\n"
+msgstr "Tên dùng\t\t Cổng Từ\t\tGần nhất\n"
+
+#: src/lastlog.c:92
+#, c-format
+msgid "Username Port Latest\n"
+msgstr "Tên dùng\t\t\t Cổng Gần nhất\n"
+
+#: src/lastlog.c:107
+msgid "**Never logged in**"
+msgstr "**Chưa bao giờ đăng nhập**"
+
+#: src/login.c:156
+#, c-format
+msgid "Usage: %s [-p] [name]\n"
+msgstr "Cách sử dụng: %s [-p] [tên]\n"
+
+#: src/login.c:159
+#, c-format
+msgid " %s [-p] [-h host] [-f name]\n"
+msgstr " %s [-p] [-h máy] [-f tên]\n"
+
+#: src/login.c:161
+#, c-format
+msgid " %s [-p] -r host\n"
+msgstr " %s [-p] -r máy\n"
+
+#: src/login.c:198
+#, c-format
+msgid "Invalid login time\n"
+msgstr "Thời gian đăng nhập không hợp lệ.\n"
+
+#: src/login.c:234
+#, c-format
+msgid ""
+"\n"
+"System closed for routine maintenance\n"
+msgstr ""
+"\n"
+"Hệ thông bị đóng với lý do bảo dưỡng theo thủ tục.\n"
+
+#: src/login.c:244
+#, c-format
+msgid ""
+"\n"
+"[Disconnect bypassed -- root login allowed.]\n"
+msgstr ""
+"\n"
+"[Đã đi vòng sự kết nối bị ngắt -- cho phép người chủ đăng nhập.]\n"
+
+#: src/login.c:297
+#, c-format
+msgid ""
+"\n"
+"Login timed out after %d seconds.\n"
+msgstr ""
+"\n"
+"Đăng nhập đã quá giờ sau %d giây.\n"
+
+#: src/login.c:565
+#, c-format
+msgid " on `%.100s' from `%.200s'"
+msgstr " vào `%.100s' từ `%.200s'"
+
+#: src/login.c:568
+#, c-format
+msgid " on `%.100s'"
+msgstr " vào `%.100s'"
+
+#: src/login.c:722
+#, c-format
+msgid ""
+"\n"
+"%s login: "
+msgstr ""
+"\n"
+"%s đăng nhập: "
+
+#: src/login.c:879 src/sulogin.c:203
+msgid "Login incorrect"
+msgstr "Đăng nhập không đúng"
+
+#: src/login.c:996
+msgid "Warning: login re-enabled after temporary lockout.\n"
+msgstr "Cảnh báo: đã hiệu lực lại đăng nhập sau bị khóa ra tạm thời.\n"
+
+#: src/login.c:1010
+#, c-format
+msgid "Last login: %s on %s"
+msgstr "Đang nhập cuối cùng: %s vào %s"
+
+#: src/login.c:1013
+#, c-format
+msgid "Last login: %.19s on %s"
+msgstr "Đang nhập cuối cùng: %.19s vào %s"
+
+#: src/login.c:1018
+#, c-format
+msgid " from %.*s"
+msgstr " từ %.*s"
+
+#: src/mkpasswd.c:47
+#, c-format
+msgid "%s: no DBM database on system - no action performed\n"
+msgstr ""
+"%s: không có cơ sở dữ liệu DBM trên hệ thống này thì chưa thực hiện hành "
+"động nào.\n"
+
+#: src/mkpasswd.c:231 src/mkpasswd.c:236
+#, c-format
+msgid "%s: cannot overwrite file %s\n"
+msgstr "%s: không ghi đè lên tập tin %s.\n"
+
+#: src/mkpasswd.c:251
+#, c-format
+msgid "%s: cannot open DBM files for %s\n"
+msgstr "%s: không mở được các tập tin DBM để %s.\n"
+
+#: src/mkpasswd.c:286
+#, c-format
+msgid "%s: the line beginning with %.16s... is too long\n"
+msgstr "%s: dòng bắt đầu với %.16s... là quá dài.\n"
+
+#: src/mkpasswd.c:313
+#, c-format
+msgid "%s: error parsing line \"%s\"\n"
+msgstr "%s: gặp lỗi khi phân tách dòng \"%s\".\n"
+
+#: src/mkpasswd.c:321 src/mkpasswd.c:326 src/mkpasswd.c:331 src/mkpasswd.c:336
+#, c-format
+msgid "adding record for name %s\n"
+msgstr "đang thêm mục ghi cho tên %s\n"
+
+#: src/mkpasswd.c:342 src/mkpasswd.c:348 src/mkpasswd.c:353 src/mkpasswd.c:358
+#, c-format
+msgid "%s: error adding record for %s\n"
+msgstr "%s: gặp lỗi khi thêm mục ghi cho %s\n"
+
+#: src/mkpasswd.c:376
+#, c-format
+msgid "added %d entries, longest was %d\n"
+msgstr "đã thêm %d mục ghi, mục dài nhất là %d\n"
+
+#: src/mkpasswd.c:389
+#, c-format
+msgid "Usage: %s [-vf] [-p|g|sp|sg] file\n"
+msgstr "Cách sử dụng: %s [-vf] [-p|g|sp|sg] tập_tin\n"
+
+#: src/mkpasswd.c:391
+#, c-format
+msgid "Usage: %s [-vf] [-p|g|sp] file\n"
+msgstr "Cách sử dụng: %s [-vf] [-p|g|sp] tập_tin\n"
+
+#: src/mkpasswd.c:394
+#, c-format
+msgid "Usage: %s [-vf] [-p|g] file\n"
+msgstr "Cách sử dụng: %s [-vf] [-p|g] tập_tin\n"
+
+#: src/newgrp.c:61
+#, c-format
+msgid "Usage: newgrp [-] [group]\n"
+msgstr ""
+"Cách sử dụng: newgrp [-] [nhóm]\n"
+"(newgrp: nhóm mới)\n"
+
+#: src/newgrp.c:63
+#, c-format
+msgid "Usage: sg group [[-c] command]\n"
+msgstr ""
+"Cách sử dụng: sg group [[-c] lệnh]\n"
+"(group: nhóm)\n"
+
+#: src/newgrp.c:131
+#, c-format
+msgid "unknown uid: %u\n"
+msgstr "uid lạ: %u\n"
+
+#: src/newgrp.c:213
+#, c-format
+msgid "unknown gid: %lu\n"
+msgstr "gid lạ: %lu\n"
+
+#: src/newgrp.c:358 src/newgrp.c:367
+msgid "Sorry.\n"
+msgstr "Tiếc là\n"
+
+#: src/newgrp.c:472
+#, c-format
+msgid "too many groups\n"
+msgstr "có quá nhiều nhóm.\n"
+
+#: src/newusers.c:78
+#, c-format
+msgid "Usage: %s [input]\n"
+msgstr "Cách sử dụng: %s [dữ_liệu]\n"
+
+#: src/newusers.c:382
+#, c-format
+msgid "%s: can't lock /etc/passwd.\n"
+msgstr "%s: không khóa được /etc/passwd.\n"
+
+#: src/newusers.c:394
+#, c-format
+msgid "%s: can't lock files, try again later\n"
+msgstr "%s: không khóa được tập tin; hãy thư lại sau.\n"
+
+#: src/newusers.c:409
+#, c-format
+msgid "%s: can't open files\n"
+msgstr "%s: không mở được tập tin.\n"
+
+#: src/newusers.c:454
+#, c-format
+msgid "%s: line %d: invalid line\n"
+msgstr "%s: dòng %d: dòng không hợp lệ.\n"
+
+#: src/newusers.c:473
+#, c-format
+msgid "%s: line %d: can't create GID\n"
+msgstr "%s: dòng %d: không tạo được GID.\n"
+
+#: src/newusers.c:489
+#, c-format
+msgid "%s: line %d: can't create UID\n"
+msgstr "%s: dòng %d: không tạo được UID.\n"
+
+#: src/newusers.c:502
+#, c-format
+msgid "%s: line %d: cannot find user %s\n"
+msgstr "%s: dòng %d: không tìm thấy người dùng %s.\n"
+
+#: src/newusers.c:511
+#, c-format
+msgid "%s: line %d: can't update password\n"
+msgstr "%s: dòng %d: không cập nhật được mật khẩu.\n"
+
+#: src/newusers.c:529
+#, c-format
+msgid "%s: line %d: mkdir failed\n"
+msgstr "%s: dòng %d: không thực hiện lệnh mkdir (tạo thư mục) được.\n"
+
+#: src/newusers.c:534
+#, c-format
+msgid "%s: line %d: chown failed\n"
+msgstr ""
+"%s: dòng %d: không thực hiện lệnh chown (thay đổi quyền sở hữu) được.\n"
+
+#: src/newusers.c:544
+#, c-format
+msgid "%s: line %d: can't update entry\n"
+msgstr "%s: dòng %d: không cập nhật được mục ghi\n"
+
+#: src/newusers.c:576
+#, c-format
+msgid "%s: error updating files\n"
+msgstr "%s: gặp lỗi khi cập nhật tập tin.\n"
+
+#: src/passwd.c:154
+#, c-format
+msgid "Usage: %s [-f|-s] [name]\n"
+msgstr "Cách sử dụng: %s [-f|-s] [tên]\n"
+
+#: src/passwd.c:158
+#, c-format
+msgid " %s [-x max] [-n min] [-w warn] [-i inact] name\n"
+msgstr ""
+" %s [-x tối_đa] [-n tối_thiểu] [-w cảnh_báo] [-i không_hoạt_động] tên\n"
+
+#: src/passwd.c:160
+#, c-format
+msgid " %s {-l|-u|-d|-S|-e} name\n"
+msgstr " %s {-l|-u|-d|-S|-e} tên\n"
+
+#: src/passwd.c:214
+msgid "Old password: "
+msgstr "Mật khẩu cũ:"
+
+#: src/passwd.c:223
+#, c-format
+msgid "Incorrect password for `%s'\n"
+msgstr "Mật khẩu không đúng cho `%s'\n"
+
+#: src/passwd.c:247
+#, c-format
+msgid ""
+"Enter the new password (minimum of %d, maximum of %d characters)\n"
+"Please use a combination of upper and lower case letters and numbers.\n"
+msgstr ""
+"Hãy nhập mật khẩu mới (ký tự tối thiểu %d, tối đa %d).\n"
+"Hãy phối cả chữ hoa và chữ thường và số với nhau.\n"
+
+#: src/passwd.c:253
+msgid "New password: "
+msgstr "Mật khẩu mới:"
+
+#: src/passwd.c:263
+#, c-format
+msgid "Try again.\n"
+msgstr "Hãy thử lại.\n"
+
+#: src/passwd.c:274
+#, c-format
+msgid ""
+"\n"
+"Warning: weak password (enter it again to use it anyway).\n"
+msgstr ""
+"\n"
+"Cảnh báo: mật khẩu yếu (nếu còn muốn sử dụng nó thì hãy nhập lại).\n"
+
+#: src/passwd.c:283
+#, c-format
+msgid "They don't match; try again.\n"
+msgstr "Hai mật khẩu ấy chưa khớp với nhau: hãy thử lại.\n"
+
+#: src/passwd.c:360 src/passwd.c:377
+#, c-format
+msgid "The password for %s cannot be changed.\n"
+msgstr "Không thay đổi được mật khẩu cho %s.\n"
+
+#: src/passwd.c:390
+#, c-format
+msgid "Sorry, the password for %s cannot be changed yet.\n"
+msgstr "Tiếc là chưa có thể thay đổi mật khẩu cho %s.\n"
+
+#: src/passwd.c:472
+#, c-format
+msgid "%s: out of memory\n"
+msgstr "%s: hết bộ nhớ\n"
+
+#: src/passwd.c:701
+#, c-format
+msgid "%s: Cannot execute %s"
+msgstr "%s: không thực hiện được %s."
+
+#: src/passwd.c:786
+#, c-format
+msgid "%s: repository %s not supported\n"
+msgstr "%s chưa hỗ trợ kho %s.\n"
+
+#: src/passwd.c:884
+#, c-format
+msgid "%s: You may not view or modify password information for %s.\n"
+msgstr "%s: không cho phép bạn xem hay sửa đổi thông tin mật khẩu cho %s.\n"
+
+#: src/passwd.c:934
+#, c-format
+msgid "Changing password for %s\n"
+msgstr "Đang thay đổi mật khẩu cho %s.\n"
+
+#: src/passwd.c:938
+#, c-format
+msgid "The password for %s is unchanged.\n"
+msgstr "Chưa thay đổi mật khẩu cho %s.\n"
+
+#: src/passwd.c:987
+#, c-format
+msgid "Password changed.\n"
+msgstr "Đã thay đổi mật khẩu rồi.\n"
+
+#: src/pwck.c:87
+#, c-format
+msgid "Usage: %s [-q] [-r] [-s] [passwd [shadow]]\n"
+msgstr ""
+"Cách sử dụng: %s [-q] [-r] [-s] [passwd [shadow]]\n"
+"(passwd: mật khẩu\n"
+"shadow: bóng)\n"
+
+#: src/pwck.c:90
+#, c-format
+msgid "Usage: %s [-q] [-r] [-s] [passwd]\n"
+msgstr ""
+"Cách sử dụng: %s [-q] [-r] [-s] [passwd]\n"
+"(passwd: mật khẩu)\n"
+
+#: src/pwck.c:292
+#, c-format
+msgid "invalid password file entry\n"
+msgstr "mục ghi tập tin mật khẩu không hợp lệ\n"
+
+#: src/pwck.c:354
+msgid "duplicate password entry\n"
+msgstr "mục ghi mật khẩu nhân bản\n"
+
+#: src/pwck.c:370
+#, c-format
+msgid "invalid user name '%s'\n"
+msgstr "tên dùng không hợp lệ '%s'\n"
+
+#: src/pwck.c:384
+#, c-format
+msgid "user %s: no group %u\n"
+msgstr "người dùng %s: không có nhóm %u\n"
+
+#: src/pwck.c:400
+#, c-format
+msgid "user %s: directory %s does not exist\n"
+msgstr "người dùng %s: chưa có thư mục %s.\n"
+
+#: src/pwck.c:416
+#, c-format
+msgid "user %s: program %s does not exist\n"
+msgstr "người dùng %s: chưa có chương trình %s.\n"
+
+#: src/pwck.c:452
+#, c-format
+msgid "invalid shadow password file entry\n"
+msgstr "mục ghi tập tin mật khẩu bóng không hợp lệ\n"
+
+#: src/pwck.c:514
+msgid "duplicate shadow password entry\n"
+msgstr "mục ghi tập tin mật khẩu bóng nhân bản\n"
+
+#: src/pwck.c:538
+msgid "no matching password file entry\n"
+msgstr "không có mục ghi tập tin mật khẩu có khớp\n"
+
+#: src/pwck.c:556
+#, c-format
+msgid "user %s: last password change in the future\n"
+msgstr "người dùng %s: lần thay đổi mật khẩu cuối cùng có trong tương lai\n"
+
+#: src/pwconv.c:85 src/pwunconv.c:79
+#, c-format
+msgid "%s: can't lock passwd file\n"
+msgstr "%s: không khóa được tập tin mật khẩu (passwd)\n"
+
+#: src/pwconv.c:90 src/pwunconv.c:84
+#, c-format
+msgid "%s: can't open passwd file\n"
+msgstr "%s: không mở được tập tin mật khẩu (passwd)\n"
+
+#: src/pwconv.c:118
+#, c-format
+msgid "%s: can't remove shadow entry for %s\n"
+msgstr "%s: không loại bỏ được mục ghi bóng cho %s.\n"
+
+#: src/pwconv.c:163
+#, c-format
+msgid "%s: can't update passwd entry for %s\n"
+msgstr "%s: không cập nhật được mục ghi mật khẩu (passwd) cho %s.\n"
+
+#: src/pwconv.c:170
+#, c-format
+msgid "%s: can't update shadow file\n"
+msgstr "%s: không cập nhật được tập tin bóng.\n"
+
+#: src/pwconv.c:174
+#, c-format
+msgid "%s: can't update passwd file\n"
+msgstr "%s: không cập nhật được tập tin mật khẩu (passwd).\n"
+
+#: src/pwunconv.c:124
+#, c-format
+msgid "%s: can't update entry for user %s\n"
+msgstr "%s: không cập nhật được mục ghi cho người dùng %s.\n"
+
+#: src/pwunconv.c:143
+#, c-format
+msgid "%s: can't delete shadow password file\n"
+msgstr "%s: không xóa bỏ được tập tin mật khẩu bóng.\n"
+
+#: src/su.c:132
+msgid "Sorry."
+msgstr "Tiếc là..."
+
+#: src/su.c:320
+#, c-format
+msgid "%s: must be run from a terminal\n"
+msgstr "%s: phải chạy nó từ thiết bị cuối.\n"
+
+#: src/su.c:419
+#, c-format
+msgid "%s: pam_start: error %d\n"
+msgstr "%s: pam_start: (pam bắt đầu) lỗi %d\n"
+
+#: src/su.c:447
+#, c-format
+msgid "Unknown id: %s\n"
+msgstr "ID lạ: %s\n"
+
+#: src/su.c:484 src/su.c:500
+#, c-format
+msgid "You are not authorized to su %s\n"
+msgstr "Bạn không đủ quyền sử dụng lệnh su với %s.\n"
+
+#: src/su.c:495
+msgid "(Enter your own password.)"
+msgstr "(Hãy nhập mật khẩu của bạn.)"
+
+#: src/su.c:527
+#, c-format
+msgid ""
+"%s: %s\n"
+"(Ignored)\n"
+msgstr ""
+"%s: %s\n"
+"(Đã bo qua)\n"
+
+#: src/su.c:741
+#, c-format
+msgid "No shell\n"
+msgstr "Không có hệ vỏ\n"
+
+#: src/suauth.c:104
+#, c-format
+msgid "Access to su to that account DENIED.\n"
+msgstr "su KHÔNG đủ quyền truy cập tài khoản ấy.\n"
+
+#: src/suauth.c:112
+#, c-format
+msgid "Password authentication bypassed.\n"
+msgstr "Đã đi vòng việc xác thức mật khẩu rồi.\n"
+
+#: src/suauth.c:121
+#, c-format
+msgid "Please enter your OWN password as authentication.\n"
+msgstr "Hãy nhập mật khẩu của BẠN để xác thức.\n"
+
+#: src/sulogin.c:118
+#, c-format
+msgid "No password file\n"
+msgstr "Không có tập tin mật khẩu.\n"
+
+#: src/sulogin.c:160
+#, c-format
+msgid "No password entry for 'root'\n"
+msgstr "Không có mục ghi mật khẩu cho 'root' (người chủ).\n"
+
+#: src/sulogin.c:175
+msgid ""
+"\n"
+"Type control-d to proceed with normal startup,\n"
+"(or give root password for system maintenance):"
+msgstr ""
+"\n"
+"Hãy gõ hai phím control-d để tiếp tục khởi động cách thường,\n"
+"(hoặc nhập mật khẩu chủ để bảo dưỡng hệ thống:"
+
+#: src/sulogin.c:210
+msgid "Entering System Maintenance Mode\n"
+msgstr "Đang vào chế độ bảo dưỡng hệ thống\n"
+
+#: src/useradd.c:230 src/useradd.c:243 src/usermod.c:682 src/usermod.c:695
+#, c-format
+msgid "%s: invalid numeric argument `%s'\n"
+msgstr "%s: đối số thuộc số không hợp lệ `%s'\n"
+
+#: src/useradd.c:298
+#, c-format
+msgid "%s: unknown gid %s\n"
+msgstr "%s: GID lạ %s\n"
+
+#: src/useradd.c:306 src/useradd.c:598 src/useradd.c:1055 src/usermod.c:227
+#: src/usermod.c:814
+#, c-format
+msgid "%s: unknown group %s\n"
+msgstr "%s: nhóm lạ %s\n"
+
+#: src/useradd.c:418
+#, c-format
+msgid "%s: cannot create new defaults file\n"
+msgstr "%s: không tạo được tập tin mặc định mới.\n"
+
+#: src/useradd.c:423
+#, c-format
+msgid "%s: cannot open new defaults file\n"
+msgstr "%s: không mở được tập tin mặc định mới.\n"
+
+#: src/useradd.c:515 src/useradd.c:526
+#, c-format
+msgid "%s: rename: %s"
+msgstr "%s: đổi tên: %s"
+
+#: src/useradd.c:619 src/usermod.c:248
+#, c-format
+msgid "%s: group `%s' is a NIS group.\n"
+msgstr "%s: nhóm `%s' không phải là nhóm NIS.\n"
+
+#: src/useradd.c:628 src/usermod.c:257
+#, c-format
+msgid "%s: too many groups specified (max %d).\n"
+msgstr "%s: đã ghi rõ quá nhiều nhóm (tối đa %d).\n"
+
+#: src/useradd.c:660
+#, c-format
+msgid "Usage: useradd [-u uid [-o]] [-g group] [-G group,...] \n"
+msgstr ""
+"Cách sử dụng: useradd [-u uid [-o]] [-g nhóm] [-G nhóm,...] \n"
+"(useradd: thêm người dùng)\n"
+
+#: src/useradd.c:663
+#, c-format
+msgid " [-d home] [-s shell] [-c comment] [-m [-k template]]\n"
+msgstr "\t\t[-d chính] [-s hệ_vỏ] [-c ghi_chú] [-m [-k mẫu]]\n"
+
+#: src/useradd.c:665 src/useradd.c:671
+#, c-format
+msgid " [-f inactive] [-e expire]\n"
+msgstr "\t\t[-f không_hoạt_động] [-e hết_hạn ]\n"
+
+#: src/useradd.c:667
+#, c-format
+msgid " [-p passwd] name\n"
+msgstr "\t\t[-p mật_khẩu] tên\n"
+
+#: src/useradd.c:669
+#, c-format
+msgid " useradd -D [-g group] [-b base] [-s shell]\n"
+msgstr ""
+" useradd -D [-g nhóm] [-b cơ_bản] [-s hệ_vỏ]\n"
+"(useradd: thêm người dùng)\n"
+
+#: src/useradd.c:756 src/usermod.c:444
+#, c-format
+msgid "%s: error locking group file\n"
+msgstr "%s: gặp lỗi khi khóa tập tin nhóm.\n"
+
+#: src/useradd.c:760 src/usermod.c:449
+#, c-format
+msgid "%s: error opening group file\n"
+msgstr "%s: gặp lỗi khi mở tập tin nhóm.\n"
+
+#: src/useradd.c:766 src/usermod.c:542
+#, c-format
+msgid "%s: error locking shadow group file\n"
+msgstr "%s: gặp lỗi khi khóa tập tin nhóm bóng.\n"
+
+#: src/useradd.c:771 src/usermod.c:548
+#, c-format
+msgid "%s: error opening shadow group file\n"
+msgstr "%s: gặp lỗi khi mở tập tin nhóm bóng.\n"
+
+#: src/useradd.c:909
+#, c-format
+msgid "%s: uid %u is not unique\n"
+msgstr "%s: UID %u không phải độc nhất\n"
+
+#: src/useradd.c:939
+#, c-format
+msgid "%s: can't get unique uid\n"
+msgstr "%s: không gọi được UID độc nhất\n"
+
+#: src/useradd.c:975
+#, c-format
+msgid "%s: invalid base directory `%s'\n"
+msgstr "%s: thư mục cơ ban không hợp lệ `%s'\n"
+
+#: src/useradd.c:985
+#, c-format
+msgid "%s: invalid comment `%s'\n"
+msgstr "%s: ghi chú không hợp lệ `%s'\n"
+
+#: src/useradd.c:996
+#, c-format
+msgid "%s: invalid home directory `%s'\n"
+msgstr "%s: thư mục chính không hợp lê `%s'\n"
+
+#: src/useradd.c:1015 src/usermod.c:796
+#, c-format
+msgid "%s: invalid date `%s'\n"
+msgstr "%s: ngày không hợp lệ `%s'\n"
+
+#: src/useradd.c:1028
+#, c-format
+msgid "%s: shadow passwords required for -e\n"
+msgstr "%s: cần đến mật khẩu bóng cho tùy chọn -e\n"
+
+#: src/useradd.c:1044
+#, c-format
+msgid "%s: shadow passwords required for -f\n"
+msgstr "%s: cần đến mật khẩu bóng cho tùy chọn -f\n"
+
+#: src/useradd.c:1111 src/usermod.c:772 src/usermod.c:782 src/usermod.c:829
+#: src/usermod.c:873
+#, c-format
+msgid "%s: invalid field `%s'\n"
+msgstr "%s: trường không hợp lệ`%s'\n"
+
+#: src/useradd.c:1122
+#, c-format
+msgid "%s: invalid shell `%s'\n"
+msgstr "%s: hệ vỏ không hợp lệ `%s'\n"
+
+#: src/useradd.c:1163
+#, c-format
+msgid "%s: invalid user name '%s'\n"
+msgstr "%s: tên dùng không hợp lệ '%s'\n"
+
+#: src/useradd.c:1199 src/userdel.c:238 src/usermod.c:940
+#, c-format
+msgid "%s: cannot rewrite password file\n"
+msgstr "%s: không ghi lại được tập tin mật khẩu\n"
+
+#: src/useradd.c:1205 src/userdel.c:242 src/usermod.c:946
+#, c-format
+msgid "%s: cannot rewrite shadow password file\n"
+msgstr "%s: không ghi lại được tập tin mật khẩu bóng\n"
+
+#: src/useradd.c:1244 src/userdel.c:291 src/usermod.c:979
+#, c-format
+msgid "%s: unable to lock password file\n"
+msgstr "%s: không khóa được tập tin mật khẩu\n"
+
+#: src/useradd.c:1248 src/userdel.c:295 src/usermod.c:983
+#, c-format
+msgid "%s: unable to open password file\n"
+msgstr "%s: không mở được tập tin mật khẩu\n"
+
+#: src/useradd.c:1255 src/userdel.c:301 src/usermod.c:989
+#, c-format
+msgid "%s: cannot lock shadow password file\n"
+msgstr "%s: không khóa được tập tin mật khẩu bóng\n"
+
+#: src/useradd.c:1261 src/userdel.c:306 src/usermod.c:994
+#, c-format
+msgid "%s: cannot open shadow password file\n"
+msgstr "%s: không mở được tập tin mật khẩu bóng\n"
+
+#: src/useradd.c:1354
+#, c-format
+msgid "%s: error adding new password entry\n"
+msgstr "%s: gặp lỗi khi thêm mục ghi mật khẩu mới.\n"
+
+#: src/useradd.c:1365 src/usermod.c:1063
+#, c-format
+msgid "%s: error adding new shadow password entry\n"
+msgstr "%s: gặp lỗi khi thêm mục ghi mật khẩu bóng mới.\n"
+
+#: src/useradd.c:1393
+#, c-format
+msgid "%s: cannot create directory %s\n"
+msgstr "%s: không tạo được thư mục %s.\n"
+
+#: src/useradd.c:1423
+#, c-format
+msgid "No group named \"mail\" exists, creating mail spool with mode 0600.\n"
+msgstr "Không có nhóm tên \"mail\" thì đang tạo ống chỉ với chế độ 0600.\n"
+
+#: src/useradd.c:1446
+#, c-format
+msgid "Can't create mail spool for user %s.\n"
+msgstr "Không tạo được ống chỉ thư cho người dùng %s.\n"
+
+#: src/useradd.c:1550 src/usermod.c:919
+#, c-format
+msgid "%s: user %s exists\n"
+msgstr "%s: có người dùng %s rồi.\n"
+
+#: src/useradd.c:1564
+#, c-format
+msgid ""
+"%s: group %s exists - if you want to add this user to that group, use -g.\n"
+msgstr ""
+"%s: có nhóm %s rồi. Nếu bạn muốn thêm người dùng này vào nhóm ấy\n"
+"\t\t\t\t\tthì hãy sử dụng tùy chọn -g.\n"
+
+#: src/useradd.c:1602
+#, c-format
+msgid "%s: warning: CREATE_HOME not supported, please use -m instead.\n"
+msgstr ""
+"%s: cảnh báo: chưa hỗ trợ CREATE_HOME thì hãy sử dụng tùy chọn -m thay vào "
+"đó.\n"
+
+#: src/userdel.c:108
+#, c-format
+msgid "Usage: %s [-r] name\n"
+msgstr "Cách sử dụng: %s [-r] tên\n"
+
+#: src/userdel.c:160 src/userdel.c:221
+#, c-format
+msgid "%s: error updating group entry\n"
+msgstr "%s: gặp lỗi khi cập nhật mục ghi nhóm.\n"
+
+#: src/userdel.c:315
+#, c-format
+msgid "%s: cannot open group file\n"
+msgstr "%s: không mở được tập tin nhóm.\n"
+
+#: src/userdel.c:325
+#, c-format
+msgid "%s: cannot open shadow group file\n"
+msgstr "%s: không mở được tập tin nhóm bóng.\n"
+
+#: src/userdel.c:343
+#, c-format
+msgid "%s: error deleting password entry\n"
+msgstr "%s: gặp lỗi khi xóa bỏ mục ghi mật khẩu.\n"
+
+#: src/userdel.c:347
+#, c-format
+msgid "%s: error deleting shadow password entry\n"
+msgstr "%s: gặp lỗi khi xóa bỏ mục ghi mật khẩu bóng.\n"
+
+#: src/userdel.c:388
+#, c-format
+msgid "%s: user %s is currently logged in\n"
+msgstr "%s: người dùng %s có đã đăng nhập.\n"
+
+#: src/userdel.c:496 src/userdel.c:641
+#, c-format
+msgid "%s: %s not owned by %s, not removing\n"
+msgstr "%1$s: %3$s không sở hữu %2$s thì sẽ không loại bỏ nó.\n"
+
+#: src/userdel.c:502
+#, c-format
+msgid "%s: warning: can't remove "
+msgstr "%s: cảnh báo: không thể loại bỏ"
+
+#: src/userdel.c:592 src/usermod.c:722
+#, c-format
+msgid "%s: user %s does not exist\n"
+msgstr "%s: không có người dùng %s\n"
+
+#: src/userdel.c:607 src/usermod.c:738
+#, c-format
+msgid "%s: user %s is a NIS user\n"
+msgstr "%s: người dùng %s là người dùng NIS.\n"
+
+#: src/userdel.c:664
+#, c-format
+msgid "%s: not removing directory %s (would remove home of user %s)\n"
+msgstr ""
+"%s: sẽ không loại bỏ thư mục %s (vì sẽ cũng loại bỏ thư mục chính của người "
+"dùng %s).\n"
+
+#: src/userdel.c:678
+#, c-format
+msgid "%s: error removing directory %s\n"
+msgstr "%s: gặp lỗi khi loại bỏ thư mục %s.\n"
+
+#: src/usermod.c:289
+#, c-format
+msgid "Usage: %s\t[-u uid [-o]] [-g group] [-G group,...] \n"
+msgstr "Cách sử dụng: %s\t[-u uid [-o]] [-g nhóm] [-G nhóm,...] \n"
+
+#: src/usermod.c:293
+#, c-format
+msgid "\t\t[-d home [-m]] [-s shell] [-c comment] [-l new_name]\n"
+msgstr "\t\t[-d chính [-m]] [-s hệ_vỏ] [-c ghi_chú] [-l tên_mới]\n"
+
+#: src/usermod.c:296
+#, c-format
+msgid "[-f inactive] [-e expire] "
+msgstr "[-f không_hoạt_động] [-e hết_hạn ] "
+
+#: src/usermod.c:298
+#, c-format
+msgid "[-p passwd] [-L|-U] name\n"
+msgstr "[-p mật_khẩu] [-L|-U] tên\n"
+
+#: src/usermod.c:476
+#, c-format
+msgid "%s: out of memory in update_group\n"
+msgstr "%s: hết bộ nhớ trong update_group (cập nhật nhóm).\n"
+
+#: src/usermod.c:585
+#, c-format
+msgid "%s: out of memory in update_gshadow\n"
+msgstr "%s: hết bộ nhớ trong update_shadow (cập nhật bóng).\n"
+
+#: src/usermod.c:896
+#, c-format
+msgid "%s: no flags given\n"
+msgstr "%s: chưa gõ cờ\n"
+
+#: src/usermod.c:903
+#, c-format
+msgid "%s: shadow passwords required for -e and -f\n"
+msgstr "%s: cần đến mật khẩu bóng cho hai tùy chọn -e và -f\n"
+
+#: src/usermod.c:924
+#, c-format
+msgid "%s: uid %lu is not unique\n"
+msgstr "%s: UID %lu không phải độc nhất.\n"
+
+#: src/usermod.c:1047
+#, c-format
+msgid "%s: error changing password entry\n"
+msgstr "%s: gặp lỗi khi thay đổi mục ghi mật khẩu.\n"
+
+#: src/usermod.c:1053
+#, c-format
+msgid "%s: error removing password entry\n"
+msgstr "%s: gặp lỗi khi loại bỏ mục ghi mật khẩu.\n"
+
+#: src/usermod.c:1070
+#, c-format
+msgid "%s: error removing shadow password entry\n"
+msgstr "%s: gặp lỗi khi loại bỏ mục ghi mật khẩu bóng.\n"
+
+#: src/usermod.c:1098
+#, c-format
+msgid "%s: directory %s exists\n"
+msgstr "%s: có thư mục %s rồi.\n"
+
+#: src/usermod.c:1106
+#, c-format
+msgid "%s: can't create %s\n"
+msgstr "%s: không tạo được %s.\n"
+
+#: src/usermod.c:1111
+#, c-format
+msgid "%s: can't chown %s\n"
+msgstr "%s: không chown (thay đổi quyền sở hữu) được %s.\n"
+
+#: src/usermod.c:1128
+#, c-format
+msgid "%s: cannot rename directory %s to %s\n"
+msgstr "%s: không thể thay đổi lại thư mục %s thành %s.\n"
+
+#: src/usermod.c:1223
+#, c-format
+msgid "%s: warning: %s not owned by %s\n"
+msgstr "%1$s: cảnh báo: %3$s không sở hữu %2$s.\n"
+
+#: src/usermod.c:1229
+msgid "failed to change mailbox owner"
+msgstr "không thay đổi người sở hữu hộp thư được"
+
+#: src/usermod.c:1237
+msgid "failed to rename mailbox"
+msgstr "không thay đổi tên hộp thư được"
+
+#: src/vipw.c:104
+#, c-format
+msgid ""
+"\n"
+"%s: %s is unchanged\n"
+msgstr ""
+"\n"
+"%s: %s chưa thay đổi.\n"
+
+#: src/vipw.c:131
+msgid "Couldn't lock file"
+msgstr "Không khóa được tập tin."
+
+#: src/vipw.c:140
+msgid "Couldn't make backup"
+msgstr "Không lưu trữ được."
+
+#: src/vipw.c:196
+#, c-format
+msgid "%s: can't restore %s: %s (your changes are in %s)\n"
+msgstr "%s: không phục hồi được %s: %s (các thay đổi của bạn ở trong %s).\n"
+
+#: src/vipw.c:234
+#, c-format
+msgid ""
+"Usage:\n"
+"`vipw' edits /etc/passwd `vipw -s' edits /etc/shadow\n"
+"`vigr' edits /etc/group `vigr -s' edits /etc/gshadow\n"
+msgstr ""
+"Cách sử dụng:\n"
+"`vipw' thì sửa đổi /etc/passwd `vipw -s' thì sửa đổi /etc/shadow\n"
+"`vigr' thì sửa đổi /etc/group `vigr -s' thì sửa đổi /etc/gshadow\n"
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2004-05-14 10:26+1200\n"
"Last-Translator: Carlos Z.F. Liu <carlos_liu@yahoo.com>\n"
"Language-Team: Chinese (simplified) <i18n-translation@lists.linux.net.cn>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) 失败\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "无法为配置信息分配空间。\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "配置错误 - 未知项目“%s”(请通知管理员)\n"
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "抱歉。\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "用户组过多\n"
msgstr ""
"Project-Id-Version: shadow\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-25 12:28+0200\n"
+"POT-Creation-Date: 2005-05-23 12:26+0200\n"
"PO-Revision-Date: 2005-01-06 09:58+0800\n"
"Last-Translator: Asho Yeh <asho@debian.org.tw>\n"
"Language-Team: Chinese (traditional) <<zh-l10n@linux.org.tw>>\n"
msgid "malloc(%d) failed\n"
msgstr "malloc(%d) 失敗\n"
-#: lib/getdef.c:265
+#: lib/getdef.c:262
#, c-format
msgid "Could not allocate space for config info.\n"
msgstr "無法為設定訊息配置空間。\n"
-#: lib/getdef.c:319
+#: lib/getdef.c:303
#, c-format
msgid "configuration error - unknown item '%s' (notify administrator)\n"
msgstr "配置錯誤 - 未知項目“%s”(請通知管理員)\n"
"Usage: lastlog [options]\n"
"\n"
"Options:\n"
-" -u, --login LOGIN\tprint lastlog record for user with specified LOGIN\n"
+" -u, --user LOGIN\tprint lastlog record for user with specified LOGIN\n"
" -h, --help\t\tdisplay this help message and exit\n"
" -t, --time DAYS\tprint only lastlog records more recent than DAYS\n"
msgstr ""
msgid "Sorry.\n"
msgstr "抱歉。\n"
-#: src/newgrp.c:467
+#: src/newgrp.c:472
#, c-format
msgid "too many groups\n"
msgstr "使用者群組過多\n"
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
#include <config.h>
#include "rcsid.h"
-RCSID (PKG_VER "$Id: lastlog.c,v 1.17 2005/04/25 10:26:37 kloczek Exp $")
+RCSID (PKG_VER "$Id: lastlog.c,v 1.18 2005/04/27 16:55:33 kloczek Exp $")
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
fprintf (stdout, _("Usage: lastlog [options]\n"
"\n"
"Options:\n"
- " -u, --login LOGIN print lastlog record for user with specified LOGIN\n"
+ " -u, --user LOGIN print lastlog record for user with specified LOGIN\n"
" -h, --help display this help message and exit\n"
" -t, --time DAYS print only lastlog records more recent than DAYS\n"));
exit (1);
#include <config.h>
#include "rcsid.h"
-RCSID (PKG_VER "$Id: newgrp.c,v 1.27 2005/03/31 05:14:54 kloczek Exp $")
+RCSID (PKG_VER "$Id: newgrp.c,v 1.28 2005/05/19 11:28:27 kloczek Exp $")
#include <stdio.h>
#include <errno.h>
#include <grp.h>
SYSLOG ((LOG_INFO, "user `%s' switched to group `%s'",
name, group));
if (getdef_bool ("SYSLOG_SG_ENAB")) {
- char *loginname = xstrdup (getlogin ());
- char *tty = xstrdup (ttyname (0));
+ char *loginname = getlogin ();
+ char *tty = ttyname (0);
+
+ if (loginname != NULL)
+ loginname = xstrdup (loginname);
+ if (tty != NULL)
+ tty = xstrdup (tty);
if (loginname == NULL)
loginname = "???";